From ea03013ea9ddb513185cf9b6b1aac9c66c2fa92e Mon Sep 17 00:00:00 2001
From: Markus Malkusch <markus@malkusch.de>
Date: Thu, 2 Apr 2015 00:09:52 +0200
Subject: [PATCH 1/7] configuration

---
 Makefile      | 10 ++++++++++
 apigen.neon   |  4 ++++
 composer.json |  8 ++++++++
 3 files changed, 22 insertions(+)
 create mode 100644 Makefile
 create mode 100644 apigen.neon
 create mode 100644 composer.json

diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..9644ca9
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,10 @@
+# @configure_input@
+
+doc: composer-update
+	./vendor/bin/apigen generate
+
+composer-clean:
+	rm -rf vendor/php-mock/phpunit/ composer.lock
+
+composer-update: composer-clean
+	composer.phar update
diff --git a/apigen.neon b/apigen.neon
new file mode 100644
index 0000000..fc353ce
--- /dev/null
+++ b/apigen.neon
@@ -0,0 +1,4 @@
+destination: api
+source:
+	- vendor/php-mock/phpunit/classes/
+	
diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000..e9ff093
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,8 @@
+{
+    "name": "php-mock/phpunit-doc",
+    "require": {
+        "php": ">=5",
+	"php-mock/phpunit": "dev-master",
+	"apigen/apigen": "^4"
+    }
+}

From ab5ee3230dd6d85b06f39c60a3e1c77fb4b4f593 Mon Sep 17 00:00:00 2001
From: Markus Malkusch <markus@malkusch.de>
Date: Thu, 2 Apr 2015 00:31:25 +0200
Subject: [PATCH 2/7] release 0.1

---
 api/404.html                                  |   96 ++
 api/class-phpmock.phpunit.PHPMock.html        |  248 ++++
 api/elementlist.js                            |    3 +
 api/index.html                                |  103 ++
 api/namespace-phpmock.html                    |  101 ++
 api/namespace-phpmock.phpunit.html            |  107 ++
 api/resources/collapsed.png                   |  Bin 0 -> 238 bytes
 api/resources/combined.js                     | 1315 +++++++++++++++++
 api/resources/footer.png                      |  Bin 0 -> 7948 bytes
 api/resources/inherit.png                     |  Bin 0 -> 152 bytes
 api/resources/resize.png                      |  Bin 0 -> 216 bytes
 api/resources/sort.png                        |  Bin 0 -> 171 bytes
 api/resources/style.css                       |  614 ++++++++
 api/resources/tree-cleaner.png                |  Bin 0 -> 126 bytes
 api/resources/tree-hasnext.png                |  Bin 0 -> 128 bytes
 api/resources/tree-last.png                   |  Bin 0 -> 172 bytes
 api/resources/tree-vertical.png               |  Bin 0 -> 127 bytes
 api/source-class-phpmock.phpunit.PHPMock.html |  202 +++
 18 files changed, 2789 insertions(+)
 create mode 100644 api/404.html
 create mode 100644 api/class-phpmock.phpunit.PHPMock.html
 create mode 100644 api/elementlist.js
 create mode 100644 api/index.html
 create mode 100644 api/namespace-phpmock.html
 create mode 100644 api/namespace-phpmock.phpunit.html
 create mode 100644 api/resources/collapsed.png
 create mode 100644 api/resources/combined.js
 create mode 100644 api/resources/footer.png
 create mode 100644 api/resources/inherit.png
 create mode 100644 api/resources/resize.png
 create mode 100644 api/resources/sort.png
 create mode 100644 api/resources/style.css
 create mode 100644 api/resources/tree-cleaner.png
 create mode 100644 api/resources/tree-hasnext.png
 create mode 100644 api/resources/tree-last.png
 create mode 100644 api/resources/tree-vertical.png
 create mode 100644 api/source-class-phpmock.phpunit.PHPMock.html

diff --git a/api/404.html b/api/404.html
new file mode 100644
index 0000000..bbe2acd
--- /dev/null
+++ b/api/404.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="utf-8">
+	<meta name="robots" content="noindex">
+
+	<title>Page not found</title>
+
+	<link rel="stylesheet" href="resources/style.css?e99947befd7bf673c6b43ff75e9e0f170c88a60e">
+
+</head>
+
+<body>
+<div id="left">
+	<div id="menu">
+		<a href="index.html" title="Overview"><span>Overview</span></a>
+
+
+		<div id="groups">
+				<h3>Namespaces</h3>
+			<ul>
+				<li>
+					<a href="namespace-phpmock.html">
+						phpmock<span></span>
+					</a>
+
+						<ul>
+				<li>
+					<a href="namespace-phpmock.phpunit.html">
+						phpunit					</a>
+
+						</li>
+							</ul></li>
+			</ul>
+		</div>
+
+		<hr>
+
+
+		<div id="elements">
+
+
+			<h3>Traits</h3>
+			<ul>
+				<li class="active"><a href="class-phpmock.phpunit.PHPMock.html">phpmock\phpunit\PHPMock</a></li>
+			</ul>
+
+
+
+		</div>
+	</div>
+</div>
+
+<div id="splitter"></div>
+
+<div id="right">
+<div id="rightInner">
+	<form id="search">
+		<input type="hidden" name="cx" value="">
+		<input type="hidden" name="ie" value="UTF-8">
+		<input type="text" name="q" class="text" placeholder="Search">
+	</form>
+
+	<div id="navigation">
+		<ul>
+			<li>
+				<a href="index.html" title="Overview"><span>Overview</span></a>
+			</li>
+			<li>
+<span>Namespace</span>			</li>
+			<li>
+				<a href="class-phpmock.phpunit.PHPMock.html" title="Summary of phpmock\phpunit\PHPMock"><span>Class</span></a>
+			</li>
+		</ul>
+		<ul>
+		</ul>
+		<ul>
+		</ul>
+	</div>
+
+<div id="content">
+	<h1>Page not found</h1>
+	<p>The requested page could not be found.</p>
+	<p>You have probably clicked on a link that is outdated and points to a page that does not exist any more or you have made an typing error in the address.</p>
+	<p>To continue please try to find requested page in the menu, or use search field on the top.</p>
+</div>
+
+	<div id="footer">
+		 API documentation generated by <a href="http://apigen.org">ApiGen</a>
+	</div>
+</div>
+</div>
+<script src="resources/combined.js?479ca6fda5d877432bb787eaa1a8f6f67b72e18c"></script>
+<script src="elementlist.js"></script>
+</body>
+</html>
diff --git a/api/class-phpmock.phpunit.PHPMock.html b/api/class-phpmock.phpunit.PHPMock.html
new file mode 100644
index 0000000..8c6e3c5
--- /dev/null
+++ b/api/class-phpmock.phpunit.PHPMock.html
@@ -0,0 +1,248 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="utf-8">
+
+	<title>Trait phpmock\phpunit\PHPMock</title>
+
+	<link rel="stylesheet" href="resources/style.css?e99947befd7bf673c6b43ff75e9e0f170c88a60e">
+
+</head>
+
+<body>
+<div id="left">
+	<div id="menu">
+		<a href="index.html" title="Overview"><span>Overview</span></a>
+
+
+		<div id="groups">
+				<h3>Namespaces</h3>
+			<ul>
+				<li class="active">
+					<a href="namespace-phpmock.html">
+						phpmock<span></span>
+					</a>
+
+						<ul>
+				<li class="active">
+					<a href="namespace-phpmock.phpunit.html">
+						phpunit					</a>
+
+						</li>
+							</ul></li>
+			</ul>
+		</div>
+
+		<hr>
+
+
+		<div id="elements">
+
+
+			<h3>Traits</h3>
+			<ul>
+				<li class="active"><a href="class-phpmock.phpunit.PHPMock.html">PHPMock</a></li>
+			</ul>
+
+
+
+		</div>
+	</div>
+</div>
+
+<div id="splitter"></div>
+
+<div id="right">
+<div id="rightInner">
+	<form id="search">
+		<input type="hidden" name="cx" value="">
+		<input type="hidden" name="ie" value="UTF-8">
+		<input type="text" name="q" class="text" placeholder="Search">
+	</form>
+
+	<div id="navigation">
+		<ul>
+			<li>
+				<a href="index.html" title="Overview"><span>Overview</span></a>
+			</li>
+			<li>
+				<a href="namespace-phpmock.phpunit.html" title="Summary of phpmock\phpunit"><span>Namespace</span></a>
+			</li>
+			<li class="active">
+<span>Class</span>			</li>
+		</ul>
+		<ul>
+		</ul>
+		<ul>
+		</ul>
+	</div>
+
+<div id="content" class="class">
+	<h1>Trait PHPMock</h1>
+
+
+	<div class="description">
+	<p>Adds building a function mock functionality into PHPUnit_Framework_TestCase.</p>
+
+<p>Use this trait in your PHPUnit_Framework_TestCase:</p>
+
+<pre><span class="xlang">&lt;?php</span>
+
+<span class="php-keyword1">namespace</span> foo;
+
+<span class="php-keyword1">use</span> malkusch\phpmock\phpunit\PHPMock;
+
+<span class="php-keyword1">class</span> FooTest <span class="php-keyword1">extends</span> \PHPUnit_Framework_TestCase
+{
+
+    <span class="php-keyword1">use</span> PHPMock;
+
+    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> testBar()
+    {
+        <span class="php-var">$time</span> = <span class="php-var">$this</span>-&gt;getFunctionMock(__NAMESPACE__, <span class="php-quote">&quot;time&quot;</span>);
+        <span class="php-var">$time</span>-&gt;expects(<span class="php-var">$this</span>-&gt;once())-&gt;willReturn(<span class="php-num">3</span>);
+        <span class="php-var">$this</span>-&gt;assertEquals(<span class="php-num">3</span>, <span class="php-keyword2">time</span>());
+    }
+}</pre>
+	</div>
+
+
+
+
+
+
+
+
+
+	<div class="info">
+		
+		
+		<b>Namespace:</b> <a href="namespace-phpmock.html">phpmock</a>\<a href="namespace-phpmock.phpunit.html">phpunit</a><br>
+		
+
+				<b>License:</b>
+				<a href="http://www.wtfpl.net/txt/copying/">WTFPL</a><br>
+				<b>Author:</b>
+				Markus Malkusch <a href="&#109;&#97;&#105;&#108;&#116;&#x6f;&#x3a;&#x6d;&#x61;&#114;&#107;&#117;&#115;&#64;&#x6d;&#x61;&#x6c;&#x6b;u&#115;&#99;&#104;&#46;&#x64;&#x65;">&#x6d;&#x61;&#114;&#107;&#117;&#115;&#64;&#x6d;&#x61;&#x6c;&#x6b;u&#115;&#99;&#104;&#46;&#x64;&#x65;</a><br>
+				<b>Link:</b>
+				<a href="bitcoin:1335STSwu9hST4vcMRppEPgENMHD2r1REK">Donations</a><br>
+			<b>Located at</b> <a href="source-class-phpmock.phpunit.PHPMock.html#9-111" title="Go to source code">PHPMock.php</a>
+		<br>
+	</div>
+
+
+
+	<table class="summary methods" id="methods">
+	<caption>Methods summary</caption>
+	<tr data-order="getFunctionMock" id="_getFunctionMock">
+
+		<td class="attributes"><code>
+			 public 
+
+			PHPUnit_Framework_MockObject_MockObject
+			
+			</code>
+		</td>
+
+		<td class="name"><div>
+		<a class="anchor" href="#_getFunctionMock">#</a>
+		<code><a href="source-class-phpmock.phpunit.PHPMock.html#64-95" title="Go to source code">getFunctionMock</a>( <span>string <var>$namespace</var></span>, <span>string <var>$name</var></span> )</code>
+
+		<div class="description short">
+			<p>Returns the enabled function mock.</p>
+		</div>
+
+		<div class="description detailed hidden">
+			<p>Returns the enabled function mock.</p>
+
+<p>This mock will be disabled automatically after the test run.</p>
+
+
+				<h4>Parameters</h4>
+				<div class="list"><dl>
+					<dt><var>$namespace</var></dt>
+					<dd>The function namespace.</dd>
+					<dt><var>$name</var></dt>
+					<dd>The function name.</dd>
+				</dl></div>
+
+				<h4>Returns</h4>
+				<div class="list">
+					PHPUnit_Framework_MockObject_MockObject<br>The PHPUnit mock.
+				</div>
+
+
+
+
+		</div>
+		</div></td>
+	</tr>
+	<tr data-order="registerForTearDown" id="_registerForTearDown">
+
+		<td class="attributes"><code>
+			 public 
+
+			
+			
+			</code>
+		</td>
+
+		<td class="name"><div>
+		<a class="anchor" href="#_registerForTearDown">#</a>
+		<code><a href="source-class-phpmock.phpunit.PHPMock.html#97-110" title="Go to source code">registerForTearDown</a>( <span>malkusch\phpmock\Deactivatable <var>$deactivatable</var></span> )</code>
+
+		<div class="description short">
+			<p>Automatically disable function mocks after the test was run.</p>
+		</div>
+
+		<div class="description detailed hidden">
+			<p>Automatically disable function mocks after the test was run.</p>
+
+<p>If you use getFunctionMock() you don't need this method. This method
+is meant for a Deactivatable (e.g. a MockEnvironment) which was
+directly created with PHPMock's API.</p>
+
+
+				<h4>Parameters</h4>
+				<div class="list"><dl>
+					<dt><var>$deactivatable</var></dt>
+					<dd>The function mocks.</dd>
+				</dl></div>
+
+
+
+
+
+		</div>
+		</div></td>
+	</tr>
+	</table>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>
+
+	<div id="footer">
+		 API documentation generated by <a href="http://apigen.org">ApiGen</a>
+	</div>
+</div>
+</div>
+<script src="resources/combined.js"></script>
+<script src="elementlist.js"></script>
+</body>
+</html>
diff --git a/api/elementlist.js b/api/elementlist.js
new file mode 100644
index 0000000..578ee15
--- /dev/null
+++ b/api/elementlist.js
@@ -0,0 +1,3 @@
+
+var ApiGen = ApiGen || {};
+ApiGen.elements = [["c","phpmock\\phpunit\\PHPMock"]];
diff --git a/api/index.html b/api/index.html
new file mode 100644
index 0000000..f1b1868
--- /dev/null
+++ b/api/index.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="utf-8">
+
+	<title>Overview</title>
+
+	<link rel="stylesheet" href="resources/style.css?e99947befd7bf673c6b43ff75e9e0f170c88a60e">
+
+</head>
+
+<body>
+<div id="left">
+	<div id="menu">
+<span>Overview</span>
+
+		<div id="groups">
+				<h3>Namespaces</h3>
+			<ul>
+				<li>
+					<a href="namespace-phpmock.html">
+						phpmock<span></span>
+					</a>
+
+						<ul>
+				<li>
+					<a href="namespace-phpmock.phpunit.html">
+						phpunit					</a>
+
+						</li>
+							</ul></li>
+			</ul>
+		</div>
+
+		<hr>
+
+
+		<div id="elements">
+
+
+			<h3>Traits</h3>
+			<ul>
+				<li class="active"><a href="class-phpmock.phpunit.PHPMock.html">phpmock\phpunit\PHPMock</a></li>
+			</ul>
+
+
+
+		</div>
+	</div>
+</div>
+
+<div id="splitter"></div>
+
+<div id="right">
+<div id="rightInner">
+	<form id="search">
+		<input type="hidden" name="cx" value="">
+		<input type="hidden" name="ie" value="UTF-8">
+		<input type="text" name="q" class="text" placeholder="Search" autofocus>
+	</form>
+
+	<div id="navigation">
+		<ul>
+			<li class="active">
+<span>Overview</span>			</li>
+			<li>
+<span>Namespace</span>			</li>
+			<li>
+				<a href="class-phpmock.phpunit.PHPMock.html" title="Summary of phpmock\phpunit\PHPMock"><span>Class</span></a>
+			</li>
+		</ul>
+		<ul>
+		</ul>
+		<ul>
+		</ul>
+	</div>
+
+<div id="content">
+	<h1>Overview</h1>
+
+
+	<table class="summary" id="namespaces">
+		<caption>Namespaces summary</caption>
+			<tr>
+				<td class="name"><a href="namespace-phpmock.html">phpmock</a></td>
+			</tr>
+			<tr>
+				<td class="name"><a href="namespace-phpmock.phpunit.html">phpmock\phpunit</a></td>
+			</tr>
+	</table>
+
+
+</div>
+
+	<div id="footer">
+		 API documentation generated by <a href="http://apigen.org">ApiGen</a>
+	</div>
+</div>
+</div>
+<script src="resources/combined.js?479ca6fda5d877432bb787eaa1a8f6f67b72e18c"></script>
+<script src="elementlist.js?35b6369da1b2791d079f3a90139a4c47f746412b"></script>
+</body>
+</html>
diff --git a/api/namespace-phpmock.html b/api/namespace-phpmock.html
new file mode 100644
index 0000000..97f217f
--- /dev/null
+++ b/api/namespace-phpmock.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="utf-8">
+
+	<title>Namespace phpmock</title>
+
+	<link rel="stylesheet" href="resources/style.css?e99947befd7bf673c6b43ff75e9e0f170c88a60e">
+
+</head>
+
+<body>
+<div id="left">
+	<div id="menu">
+		<a href="index.html" title="Overview"><span>Overview</span></a>
+
+
+		<div id="groups">
+				<h3>Namespaces</h3>
+			<ul>
+				<li class="active">
+					<a href="namespace-phpmock.html">
+						phpmock<span></span>
+					</a>
+
+						<ul>
+				<li>
+					<a href="namespace-phpmock.phpunit.html">
+						phpunit					</a>
+
+						</li>
+							</ul></li>
+			</ul>
+		</div>
+
+
+
+		<div id="elements">
+
+
+
+
+
+		</div>
+	</div>
+</div>
+
+<div id="splitter"></div>
+
+<div id="right">
+<div id="rightInner">
+	<form id="search">
+		<input type="hidden" name="cx" value="">
+		<input type="hidden" name="ie" value="UTF-8">
+		<input type="text" name="q" class="text" placeholder="Search">
+	</form>
+
+	<div id="navigation">
+		<ul>
+			<li>
+				<a href="index.html" title="Overview"><span>Overview</span></a>
+			</li>
+			<li class="active">
+<span>Namespace</span>			</li>
+			<li>
+				<a href="class-phpmock.phpunit.PHPMock.html" title="Summary of phpmock\phpunit\PHPMock"><span>Class</span></a>
+			</li>
+		</ul>
+		<ul>
+		</ul>
+		<ul>
+		</ul>
+	</div>
+
+<div id="content" class="namespace">
+	<h1>Namespace phpmock</h1>
+
+	<table class="summary" id="namespaces">
+	<caption>Namespaces summary</caption>
+	<tr>
+		<td class="name"><a href="namespace-phpmock.phpunit.html">phpmock\phpunit</a></td>
+	</tr>
+	</table>
+
+
+
+
+
+
+
+</div>
+
+	<div id="footer">
+		 API documentation generated by <a href="http://apigen.org">ApiGen</a>
+	</div>
+</div>
+</div>
+<script src="resources/combined.js?479ca6fda5d877432bb787eaa1a8f6f67b72e18c"></script>
+<script src="elementlist.js?35b6369da1b2791d079f3a90139a4c47f746412b"></script>
+</body>
+</html>
diff --git a/api/namespace-phpmock.phpunit.html b/api/namespace-phpmock.phpunit.html
new file mode 100644
index 0000000..305651b
--- /dev/null
+++ b/api/namespace-phpmock.phpunit.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="utf-8">
+
+	<title>Namespace phpmock\phpunit</title>
+
+	<link rel="stylesheet" href="resources/style.css?e99947befd7bf673c6b43ff75e9e0f170c88a60e">
+
+</head>
+
+<body>
+<div id="left">
+	<div id="menu">
+		<a href="index.html" title="Overview"><span>Overview</span></a>
+
+
+		<div id="groups">
+				<h3>Namespaces</h3>
+			<ul>
+				<li class="active">
+					<a href="namespace-phpmock.html">
+						phpmock<span></span>
+					</a>
+
+						<ul>
+				<li class="active">
+					<a href="namespace-phpmock.phpunit.html">
+						phpunit					</a>
+
+						</li>
+							</ul></li>
+			</ul>
+		</div>
+
+		<hr>
+
+
+		<div id="elements">
+
+
+			<h3>Traits</h3>
+			<ul>
+				<li class="active"><a href="class-phpmock.phpunit.PHPMock.html">PHPMock</a></li>
+			</ul>
+
+
+
+		</div>
+	</div>
+</div>
+
+<div id="splitter"></div>
+
+<div id="right">
+<div id="rightInner">
+	<form id="search">
+		<input type="hidden" name="cx" value="">
+		<input type="hidden" name="ie" value="UTF-8">
+		<input type="text" name="q" class="text" placeholder="Search">
+	</form>
+
+	<div id="navigation">
+		<ul>
+			<li>
+				<a href="index.html" title="Overview"><span>Overview</span></a>
+			</li>
+			<li class="active">
+<span>Namespace</span>			</li>
+			<li>
+				<a href="class-phpmock.phpunit.PHPMock.html" title="Summary of phpmock\phpunit\PHPMock"><span>Class</span></a>
+			</li>
+		</ul>
+		<ul>
+		</ul>
+		<ul>
+		</ul>
+	</div>
+
+<div id="content" class="namespace">
+	<h1>Namespace <a href="namespace-phpmock.html">phpmock</a>\phpunit</h1>
+
+
+
+
+
+<table class="summary" id="traits">
+<caption>Traits summary</caption>
+<tr>
+	<td class="name"><a href="class-phpmock.phpunit.PHPMock.html">PHPMock</a></td>
+	<td>Adds building a function mock functionality into PHPUnit_Framework_TestCase.</td>
+</tr>
+</table>
+
+
+
+</div>
+
+	<div id="footer">
+		 API documentation generated by <a href="http://apigen.org">ApiGen</a>
+	</div>
+</div>
+</div>
+<script src="resources/combined.js?479ca6fda5d877432bb787eaa1a8f6f67b72e18c"></script>
+<script src="elementlist.js?35b6369da1b2791d079f3a90139a4c47f746412b"></script>
+</body>
+</html>
diff --git a/api/resources/collapsed.png b/api/resources/collapsed.png
new file mode 100644
index 0000000000000000000000000000000000000000..56e7323931a3ca5774e2e85ba622c6282c122f5f
GIT binary patch
diff --git a/api/resources/combined.js b/api/resources/combined.js
new file mode 100644
index 0000000..38f72f9
--- /dev/null
+++ b/api/resources/combined.js
@@ -0,0 +1,1315 @@
+
+var ApiGen = ApiGen || {};
+ApiGen.config = {"options":{"elementDetailsCollapsed":true,"elementsOrder":"natural"},"name":"ApiGen theme","templatesPath":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default","resources":{"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/resources":"resources"},"templates":{"overview":{"filename":"index.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/overview.latte"},"combined":{"filename":"resources\/combined.js","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/combined.js.latte"},"elementlist":{"filename":"elementlist.js","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/elementlist.js.latte"},"404":{"filename":"404.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/404.latte"},"package":{"filename":"package-%s.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/package.latte"},"namespace":{"filename":"namespace-%s.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/namespace.latte"},"class":{"filename":"class-%s.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/class.latte"},"constant":{"filename":"constant-%s.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/constant.latte"},"function":{"filename":"function-%s.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/function.latte"},"source":{"filename":"source-%s.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/source.latte"},"tree":{"filename":"tree.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/tree.latte"},"deprecated":{"filename":"deprecated.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/deprecated.latte"},"todo":{"filename":"todo.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/todo.latte"},"sitemap":{"filename":"sitemap.xml","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/sitemap.xml.latte"},"opensearch":{"filename":"opensearch.xml","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/opensearch.xml.latte"},"robots":{"filename":"robots.txt","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/robots.txt.latte"}}};
+
+
+	/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
+*/
+(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav></:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t
+}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Ct=/^(?:checkbox|radio)$/i,Nt=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle);
+u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}x.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("<div>").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window);
+
+	/*!
+ * jQuery Cookie Plugin v1.3.1
+ * https://github.com/carhartl/jquery-cookie
+ *
+ * Copyright 2013 Klaus Hartl
+ * Released under the MIT license
+ */
+(function ($, document, undefined) {
+
+	var pluses = /\+/g;
+
+	function raw(s) {
+		return s;
+	}
+
+	function decoded(s) {
+		return unRfc2068(decodeURIComponent(s.replace(pluses, ' ')));
+	}
+
+	function unRfc2068(value) {
+		if (value.indexOf('"') === 0) {
+			// This is a quoted cookie as according to RFC2068, unescape
+			value = value.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
+		}
+		return value;
+	}
+
+	function fromJSON(value) {
+		return config.json ? JSON.parse(value) : value;
+	}
+
+	var config = $.cookie = function (key, value, options) {
+
+		// write
+		if (value !== undefined) {
+			options = $.extend({}, config.defaults, options);
+
+			if (value === null) {
+				options.expires = -1;
+			}
+
+			if (typeof options.expires === 'number') {
+				var days = options.expires, t = options.expires = new Date();
+				t.setDate(t.getDate() + days);
+			}
+
+			value = config.json ? JSON.stringify(value) : String(value);
+
+			return (document.cookie = [
+				encodeURIComponent(key), '=', config.raw ? value : encodeURIComponent(value),
+				options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
+				options.path    ? '; path=' + options.path : '',
+				options.domain  ? '; domain=' + options.domain : '',
+				options.secure  ? '; secure' : ''
+			].join(''));
+		}
+
+		// read
+		var decode = config.raw ? raw : decoded;
+		var cookies = document.cookie.split('; ');
+		var result = key ? null : {};
+		for (var i = 0, l = cookies.length; i < l; i++) {
+			var parts = cookies[i].split('=');
+			var name = decode(parts.shift());
+			var cookie = decode(parts.join('='));
+
+			if (key && key === name) {
+				result = fromJSON(cookie);
+				break;
+			}
+
+			if (!key) {
+				result[name] = fromJSON(cookie);
+			}
+		}
+
+		return result;
+	};
+
+	config.defaults = {};
+
+	$.removeCookie = function (key, options) {
+		if ($.cookie(key) !== null) {
+			$.cookie(key, null, options);
+			return true;
+		}
+		return false;
+	};
+
+})(jQuery, document);
+
+	/*!
+ * sprintf and vsprintf for jQuery
+ * somewhat based on http://jan.moesen.nu/code/javascript/sprintf-and-printf-in-javascript/
+ * Copyright (c) 2008 Sabin Iacob (m0n5t3r) <iacobs@m0n5t3r.info>
+ * @license http://www.gnu.org/licenses/gpl.html
+ * @project jquery.sprintf
+ */
+(function(d){var a={b:function(e){return parseInt(e,10).toString(2)},c:function(e){return String.fromCharCode(parseInt(e,10))},d:function(e){return parseInt(e,10)},u:function(e){return Math.abs(e)},f:function(f,e){e=parseInt(e,10);f=parseFloat(f);if(isNaN(e&&f)){return NaN}return e&&f.toFixed(e)||f},o:function(e){return parseInt(e,10).toString(8)},s:function(e){return e},x:function(e){return(""+parseInt(e,10).toString(16)).toLowerCase()},X:function(e){return(""+parseInt(e,10).toString(16)).toUpperCase()}};var c=/%(?:(\d+)?(?:\.(\d+))?|\(([^)]+)\))([%bcdufosxX])/g;var b=function(f){if(f.length==1&&typeof f[0]=="object"){f=f[0];return function(i,h,k,j,g,m,l){return a[g](f[j])}}else{var e=0;return function(i,h,k,j,g,m,l){if(g=="%"){return"%"}return a[g](f[e++],k)}}};d.extend({sprintf:function(f){var e=Array.apply(null,arguments).slice(1);return f.replace(c,b(e))},vsprintf:function(f,e){return f.replace(c,b(e))}})})(jQuery);
+
+	/*
+ * jQuery Autocomplete plugin 1.2.3
+ *
+ * Copyright (c) 2009 Jörn Zaefferer
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ *   http://www.opensource.org/licenses/mit-license.php
+ *   http://www.gnu.org/licenses/gpl.html
+ *
+ * With small modifications by Alfonso Gómez-Arzola.
+ * See changelog for details.
+ *
+ */
+
+;(function($) {
+
+$.fn.extend({
+	autocomplete: function(urlOrData, options) {
+		var isUrl = typeof urlOrData == "string";
+		options = $.extend({}, $.Autocompleter.defaults, {
+			url: isUrl ? urlOrData : null,
+			data: isUrl ? null : urlOrData,
+			delay: isUrl ? $.Autocompleter.defaults.delay : 10,
+			max: options && !options.scroll ? 10 : 150,
+			noRecord: "No Records."
+		}, options);
+
+		// if highlight is set to false, replace it with a do-nothing function
+		options.highlight = options.highlight || function(value) { return value; };
+
+		// if the formatMatch option is not specified, then use formatItem for backwards compatibility
+		options.formatMatch = options.formatMatch || options.formatItem;
+
+		return this.each(function() {
+			new $.Autocompleter(this, options);
+		});
+	},
+	result: function(handler) {
+		return this.bind("result", handler);
+	},
+	search: function(handler) {
+		return this.trigger("search", [handler]);
+	},
+	flushCache: function() {
+		return this.trigger("flushCache");
+	},
+	setOptions: function(options){
+		return this.trigger("setOptions", [options]);
+	},
+	unautocomplete: function() {
+		return this.trigger("unautocomplete");
+	}
+});
+
+$.Autocompleter = function(input, options) {
+
+	var KEY = {
+		UP: 38,
+		DOWN: 40,
+		DEL: 46,
+		TAB: 9,
+		RETURN: 13,
+		ESC: 27,
+		COMMA: 188,
+		PAGEUP: 33,
+		PAGEDOWN: 34,
+		BACKSPACE: 8
+	};
+
+	var globalFailure = null;
+	if(options.failure != null && typeof options.failure == "function") {
+	  globalFailure = options.failure;
+	}
+
+	// Create $ object for input element
+	var $input = $(input).attr("autocomplete", "off").addClass(options.inputClass);
+
+	var timeout;
+	var previousValue = "";
+	var cache = $.Autocompleter.Cache(options);
+	var hasFocus = 0;
+	var lastKeyPressCode;
+	var config = {
+		mouseDownOnSelect: false
+	};
+	var select = $.Autocompleter.Select(options, input, selectCurrent, config);
+
+	var blockSubmit;
+
+	// prevent form submit in opera when selecting with return key
+  navigator.userAgent.indexOf("Opera") != -1 && $(input.form).bind("submit.autocomplete", function() {
+		if (blockSubmit) {
+			blockSubmit = false;
+			return false;
+		}
+	});
+
+	// older versions of opera don't trigger keydown multiple times while pressed, others don't work with keypress at all
+	$input.bind((navigator.userAgent.indexOf("Opera") != -1 && !'KeyboardEvent' in window ? "keypress" : "keydown") + ".autocomplete", function(event) {
+		// a keypress means the input has focus
+		// avoids issue where input had focus before the autocomplete was applied
+		hasFocus = 1;
+		// track last key pressed
+		lastKeyPressCode = event.keyCode;
+		switch(event.keyCode) {
+
+			case KEY.UP:
+				if ( select.visible() ) {
+					event.preventDefault();
+					select.prev();
+				} else {
+					onChange(0, true);
+				}
+				break;
+
+			case KEY.DOWN:
+				if ( select.visible() ) {
+					event.preventDefault();
+					select.next();
+				} else {
+					onChange(0, true);
+				}
+				break;
+
+			case KEY.PAGEUP:
+				if ( select.visible() ) {
+  				event.preventDefault();
+					select.pageUp();
+				} else {
+					onChange(0, true);
+				}
+				break;
+
+			case KEY.PAGEDOWN:
+				if ( select.visible() ) {
+  				event.preventDefault();
+					select.pageDown();
+				} else {
+					onChange(0, true);
+				}
+				break;
+
+			// matches also semicolon
+			case options.multiple && $.trim(options.multipleSeparator) == "," && KEY.COMMA:
+			case KEY.TAB:
+			case KEY.RETURN:
+				if( selectCurrent() ) {
+					// stop default to prevent a form submit, Opera needs special handling
+					event.preventDefault();
+					blockSubmit = true;
+					return false;
+				}
+				break;
+
+			case KEY.ESC:
+				select.hide();
+				break;
+
+			default:
+				clearTimeout(timeout);
+				timeout = setTimeout(onChange, options.delay);
+				break;
+		}
+	}).focus(function(){
+		// track whether the field has focus, we shouldn't process any
+		// results if the field no longer has focus
+		hasFocus++;
+	}).blur(function() {
+	  hasFocus = 0;
+		if (!config.mouseDownOnSelect) {
+			hideResults();
+		}
+	}).click(function() {
+		// show select when clicking in a focused field
+		// but if clickFire is true, don't require field
+		// to be focused to begin with; just show select
+		if( options.clickFire ) {
+		  if ( !select.visible() ) {
+  			onChange(0, true);
+  		}
+		} else {
+		  if ( hasFocus++ > 1 && !select.visible() ) {
+  			onChange(0, true);
+  		}
+		}
+	}).bind("search", function() {
+		var fn = (arguments.length > 1) ? arguments[1] : null;
+		function findValueCallback(q, data) {
+			var result;
+			if( data && data.length ) {
+				for (var i=0; i < data.length; i++) {
+					if( data[i].result.toLowerCase() == q.toLowerCase() ) {
+						result = data[i];
+						break;
+					}
+				}
+			}
+			if( typeof fn == "function" ) fn(result);
+			else $input.trigger("result", result && [result.data, result.value]);
+		}
+		$.each(trimWords($input.val()), function(i, value) {
+			request(value, findValueCallback, findValueCallback);
+		});
+	}).bind("flushCache", function() {
+		cache.flush();
+	}).bind("setOptions", function() {
+		$.extend(true, options, arguments[1]);
+		// if we've updated the data, repopulate
+		if ( "data" in arguments[1] )
+			cache.populate();
+	}).bind("unautocomplete", function() {
+		select.unbind();
+		$input.unbind();
+		$(input.form).unbind(".autocomplete");
+	});
+
+
+	function selectCurrent() {
+		var selected = select.selected();
+		if( !selected )
+			return false;
+
+		var v = selected.result;
+		previousValue = v;
+
+		if ( options.multiple ) {
+			var words = trimWords($input.val());
+			if ( words.length > 1 ) {
+				var seperator = options.multipleSeparator.length;
+				var cursorAt = $(input).selection().start;
+				var wordAt, progress = 0;
+				$.each(words, function(i, word) {
+					progress += word.length;
+					if (cursorAt <= progress) {
+						wordAt = i;
+						return false;
+					}
+					progress += seperator;
+				});
+				words[wordAt] = v;
+				//$.Autocompleter.Selection(input, progress + seperator, progress + seperator);
+				v = words.join( options.multipleSeparator );
+			}
+			v += options.multipleSeparator;
+		}
+
+		$input.val(v);
+		hideResultsNow();
+		$input.trigger("result", [selected.data, selected.value]);
+		return true;
+	}
+
+	function onChange(crap, skipPrevCheck) {
+		if( lastKeyPressCode == KEY.DEL ) {
+			select.hide();
+			return;
+		}
+
+		var currentValue = $input.val();
+
+		if ( !skipPrevCheck && currentValue == previousValue )
+			return;
+
+		previousValue = currentValue;
+
+		currentValue = lastWord(currentValue);
+		if ( currentValue.length >= options.minChars) {
+			$input.addClass(options.loadingClass);
+			if (!options.matchCase)
+				currentValue = currentValue.toLowerCase();
+			request(currentValue, receiveData, hideResultsNow);
+		} else {
+			stopLoading();
+			select.hide();
+		}
+	};
+
+	function trimWords(value) {
+		if (!value)
+			return [""];
+		if (!options.multiple)
+			return [$.trim(value)];
+		return $.map(value.split(options.multipleSeparator), function(word) {
+			return $.trim(value).length ? $.trim(word) : null;
+		});
+	}
+
+	function lastWord(value) {
+		if ( !options.multiple )
+			return value;
+		var words = trimWords(value);
+		if (words.length == 1)
+			return words[0];
+		var cursorAt = $(input).selection().start;
+		if (cursorAt == value.length) {
+			words = trimWords(value)
+		} else {
+			words = trimWords(value.replace(value.substring(cursorAt), ""));
+		}
+		return words[words.length - 1];
+	}
+
+	// fills in the input box w/the first match (assumed to be the best match)
+	// q: the term entered
+	// sValue: the first matching result
+	function autoFill(q, sValue){
+		// autofill in the complete box w/the first match as long as the user hasn't entered in more data
+		// if the last user key pressed was backspace, don't autofill
+		if( options.autoFill && (lastWord($input.val()).toLowerCase() == q.toLowerCase()) && lastKeyPressCode != KEY.BACKSPACE ) {
+			// fill in the value (keep the case the user has typed)
+			$input.val($input.val() + sValue.substring(lastWord(previousValue).length));
+			// select the portion of the value not typed by the user (so the next character will erase)
+			$(input).selection(previousValue.length, previousValue.length + sValue.length);
+		}
+	};
+
+	function hideResults() {
+		clearTimeout(timeout);
+		timeout = setTimeout(hideResultsNow, 200);
+	};
+
+	function hideResultsNow() {
+		var wasVisible = select.visible();
+		select.hide();
+		clearTimeout(timeout);
+		stopLoading();
+		if (options.mustMatch) {
+			// call search and run callback
+			$input.search(
+				function (result){
+					// if no value found, clear the input box
+					if( !result ) {
+						if (options.multiple) {
+							var words = trimWords($input.val()).slice(0, -1);
+							$input.val( words.join(options.multipleSeparator) + (words.length ? options.multipleSeparator : "") );
+						}
+						else {
+							$input.val( "" );
+							$input.trigger("result", null);
+						}
+					}
+				}
+			);
+		}
+	};
+
+	function receiveData(q, data) {
+		if ( data && data.length && hasFocus ) {
+			stopLoading();
+			select.display(data, q);
+			autoFill(q, data[0].value);
+			select.show();
+		} else {
+			hideResultsNow();
+		}
+	};
+
+	function request(term, success, failure) {
+		if (!options.matchCase)
+			term = term.toLowerCase();
+		var data = cache.load(term);
+		// recieve the cached data
+		if (data) {
+			if(data.length)	{
+				success(term, data);
+			}
+			else{
+				var parsed = options.parse && options.parse(options.noRecord) || parse(options.noRecord);
+				success(term,parsed);
+			}
+		// if an AJAX url has been supplied, try loading the data now
+		} else if( (typeof options.url == "string") && (options.url.length > 0) ){
+
+			var extraParams = {
+				timestamp: +new Date()
+			};
+			$.each(options.extraParams, function(key, param) {
+				extraParams[key] = typeof param == "function" ? param() : param;
+			});
+
+			$.ajax({
+				// try to leverage ajaxQueue plugin to abort previous requests
+				mode: "abort",
+				// limit abortion to this input
+				port: "autocomplete" + input.name,
+				dataType: options.dataType,
+				url: options.url,
+				data: $.extend({
+					q: lastWord(term),
+					limit: options.max
+				}, extraParams),
+				success: function(data) {
+					var parsed = options.parse && options.parse(data) || parse(data);
+					cache.add(term, parsed);
+					success(term, parsed);
+				}
+			});
+		} else {
+			// if we have a failure, we need to empty the list -- this prevents the the [TAB] key from selecting the last successful match
+			select.emptyList();
+			if(globalFailure != null) {
+        globalFailure();
+      }
+      else {
+        failure(term);
+			}
+		}
+	};
+
+	function parse(data) {
+		var parsed = [];
+		var rows = data.split("\n");
+		for (var i=0; i < rows.length; i++) {
+			var row = $.trim(rows[i]);
+			if (row) {
+				row = row.split("|");
+				parsed[parsed.length] = {
+					data: row,
+					value: row[0],
+					result: options.formatResult && options.formatResult(row, row[0]) || row[0]
+				};
+			}
+		}
+		return parsed;
+	};
+
+	function stopLoading() {
+		$input.removeClass(options.loadingClass);
+	};
+
+};
+
+$.Autocompleter.defaults = {
+	inputClass: "ac_input",
+	resultsClass: "ac_results",
+	loadingClass: "ac_loading",
+	minChars: 1,
+	delay: 400,
+	matchCase: false,
+	matchSubset: true,
+	matchContains: false,
+	cacheLength: 100,
+	max: 1000,
+	mustMatch: false,
+	extraParams: {},
+	selectFirst: true,
+	formatItem: function(row) { return row[0]; },
+	formatMatch: null,
+	autoFill: false,
+	width: 0,
+	multiple: false,
+	multipleSeparator: " ",
+	inputFocus: true,
+	clickFire: false,
+	highlight: function(value, term) {
+		return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>");
+	},
+    scroll: true,
+    scrollHeight: 180,
+    scrollJumpPosition: true
+};
+
+$.Autocompleter.Cache = function(options) {
+
+	var data = {};
+	var length = 0;
+
+	function matchSubset(s, sub) {
+		return (new RegExp(sub.toUpperCase().replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1").replace(/[A-Z0-9]/g, function(m, offset) {
+			return offset === 0 ? '(?:' + m + '|^' + m.toLowerCase() + ')' : '(?:.*' + m + '|' + m.toLowerCase() + ')';
+		}))).test(s); // find by initials
+	};
+
+	function add(q, value) {
+		if (length > options.cacheLength){
+			flush();
+		}
+		if (!data[q]){
+			length++;
+		}
+		data[q] = value;
+	}
+
+	function populate(){
+		if( !options.data ) return false;
+		// track the matches
+		var stMatchSets = {},
+			nullData = 0;
+
+		// no url was specified, we need to adjust the cache length to make sure it fits the local data store
+		if( !options.url ) options.cacheLength = 1;
+
+		// track all options for minChars = 0
+		stMatchSets[""] = [];
+
+		// loop through the array and create a lookup structure
+		for ( var i = 0, ol = options.data.length; i < ol; i++ ) {
+			var rawValue = options.data[i];
+			// if rawValue is a string, make an array otherwise just reference the array
+			rawValue = (typeof rawValue == "string") ? [rawValue] : rawValue;
+
+			var value = options.formatMatch(rawValue, i+1, options.data.length);
+			if ( typeof(value) === 'undefined' || value === false )
+				continue;
+
+			var firstChar = value.charAt(0).toLowerCase();
+			// if no lookup array for this character exists, look it up now
+			if( !stMatchSets[firstChar] )
+				stMatchSets[firstChar] = [];
+
+			// if the match is a string
+			var row = {
+				value: value,
+				data: rawValue,
+				result: options.formatResult && options.formatResult(rawValue) || value
+			};
+
+			// push the current match into the set list
+			stMatchSets[firstChar].push(row);
+
+			// keep track of minChars zero items
+			if ( nullData++ < options.max ) {
+				stMatchSets[""].push(row);
+			}
+		};
+
+		// add the data items to the cache
+		$.each(stMatchSets, function(i, value) {
+			// increase the cache size
+			options.cacheLength++;
+			// add to the cache
+			add(i, value);
+		});
+	}
+
+	// populate any existing data
+	setTimeout(populate, 25);
+
+	function flush(){
+		data = {};
+		length = 0;
+	}
+
+	return {
+		flush: flush,
+		add: add,
+		populate: populate,
+		load: function(q) {
+			if (!options.cacheLength || !length)
+				return null;
+			/*
+			 * if dealing w/local data and matchContains than we must make sure
+			 * to loop through all the data collections looking for matches
+			 */
+			if( !options.url && options.matchContains ){
+				// track all matches
+				var csub = [];
+				// loop through all the data grids for matches
+				for( var k in data ){
+					// don't search through the stMatchSets[""] (minChars: 0) cache
+					// this prevents duplicates
+					if( k.length > 0 ){
+						var c = data[k];
+						$.each(c, function(i, x) {
+							// if we've got a match, add it to the array
+							if (matchSubset(x.value, q)) {
+								csub.push(x);
+							}
+						});
+					}
+				}
+				return csub;
+			} else
+			// if the exact item exists, use it
+			if (data[q]){
+				return data[q];
+			} else
+			if (options.matchSubset) {
+				for (var i = q.length - 1; i >= options.minChars; i--) {
+					var c = data[q.substr(0, i)];
+					if (c) {
+						var csub = [];
+						$.each(c, function(i, x) {
+							if (matchSubset(x.value, q)) {
+								csub[csub.length] = x;
+							}
+						});
+						return csub;
+					}
+				}
+			}
+			return null;
+		}
+	};
+};
+
+$.Autocompleter.Select = function (options, input, select, config) {
+	var CLASSES = {
+		ACTIVE: "ac_over"
+	};
+
+	var listItems,
+		active = -1,
+		data,
+		term = "",
+		needsInit = true,
+		element,
+		list;
+
+	// Create results
+	function init() {
+		if (!needsInit)
+			return;
+		element = $("<div/>")
+		.hide()
+		.addClass(options.resultsClass)
+		.css("position", "absolute")
+		.appendTo(document.body)
+		.hover(function(event) {
+		  // Browsers except FF do not fire mouseup event on scrollbars, resulting in mouseDownOnSelect remaining true, and results list not always hiding.
+		  if($(this).is(":visible")) {
+		    input.focus();
+		  }
+		  config.mouseDownOnSelect = false;
+		});
+
+		list = $("<ul/>").appendTo(element).mouseover( function(event) {
+			if(target(event).nodeName && target(event).nodeName.toUpperCase() == 'LI') {
+	            active = $("li", list).removeClass(CLASSES.ACTIVE).index(target(event));
+			    $(target(event)).addClass(CLASSES.ACTIVE);
+	        }
+		}).click(function(event) {
+			$(target(event)).addClass(CLASSES.ACTIVE);
+			select();
+			if( options.inputFocus )
+			  input.focus();
+			return false;
+		}).mousedown(function() {
+			config.mouseDownOnSelect = true;
+		}).mouseup(function() {
+			config.mouseDownOnSelect = false;
+		});
+
+		if( options.width > 0 )
+			element.css("width", options.width);
+
+		needsInit = false;
+	}
+
+	function target(event) {
+		var element = event.target;
+		while(element && element.tagName != "LI")
+			element = element.parentNode;
+		// more fun with IE, sometimes event.target is empty, just ignore it then
+		if(!element)
+			return [];
+		return element;
+	}
+
+	function moveSelect(step) {
+		listItems.slice(active, active + 1).removeClass(CLASSES.ACTIVE);
+		movePosition(step);
+        var activeItem = listItems.slice(active, active + 1).addClass(CLASSES.ACTIVE);
+        if(options.scroll) {
+            var offset = 0;
+            listItems.slice(0, active).each(function() {
+				offset += this.offsetHeight;
+			});
+            if((offset + activeItem[0].offsetHeight - list.scrollTop()) > list[0].clientHeight) {
+                list.scrollTop(offset + activeItem[0].offsetHeight - list.innerHeight());
+            } else if(offset < list.scrollTop()) {
+                list.scrollTop(offset);
+            }
+        }
+	};
+
+	function movePosition(step) {
+		if (options.scrollJumpPosition || (!options.scrollJumpPosition && !((step < 0 && active == 0) || (step > 0 && active == listItems.size() - 1)) )) {
+			active += step;
+			if (active < 0) {
+				active = listItems.size() - 1;
+			} else if (active >= listItems.size()) {
+				active = 0;
+			}
+		}
+	}
+
+
+	function limitNumberOfItems(available) {
+		return options.max && options.max < available
+			? options.max
+			: available;
+	}
+
+	function fillList() {
+		list.empty();
+		var max = limitNumberOfItems(data.length);
+		for (var i=0; i < max; i++) {
+			if (!data[i])
+				continue;
+			var formatted = options.formatItem(data[i].data, i+1, max, data[i].value, term);
+			if ( formatted === false )
+				continue;
+			var li = $("<li/>").html( options.highlight(formatted, term) ).addClass(i%2 == 0 ? "ac_even" : "ac_odd").appendTo(list)[0];
+			$.data(li, "ac_data", data[i]);
+		}
+		listItems = list.find("li");
+		if ( options.selectFirst ) {
+			listItems.slice(0, 1).addClass(CLASSES.ACTIVE);
+			active = 0;
+		}
+		// apply bgiframe if available
+		if ( $.fn.bgiframe )
+			list.bgiframe();
+	}
+
+	return {
+		display: function(d, q) {
+			init();
+			data = d;
+			term = q;
+			fillList();
+		},
+		next: function() {
+			moveSelect(1);
+		},
+		prev: function() {
+			moveSelect(-1);
+		},
+		pageUp: function() {
+			if (active != 0 && active - 8 < 0) {
+				moveSelect( -active );
+			} else {
+				moveSelect(-8);
+			}
+		},
+		pageDown: function() {
+			if (active != listItems.size() - 1 && active + 8 > listItems.size()) {
+				moveSelect( listItems.size() - 1 - active );
+			} else {
+				moveSelect(8);
+			}
+		},
+		hide: function() {
+			element && element.hide();
+			listItems && listItems.removeClass(CLASSES.ACTIVE);
+			active = -1;
+		},
+		visible : function() {
+			return element && element.is(":visible");
+		},
+		current: function() {
+			return this.visible() && (listItems.filter("." + CLASSES.ACTIVE)[0] || options.selectFirst && listItems[0]);
+		},
+		show: function() {
+			var offset = $(input).offset();
+			element.css({
+				width: typeof options.width == "string" || options.width > 0 ? options.width : $(input).width(),
+				top: offset.top + input.offsetHeight,
+				left: offset.left
+			}).show();
+            if(options.scroll) {
+                list.scrollTop(0);
+                list.css({
+					maxHeight: options.scrollHeight,
+					overflow: 'auto'
+				});
+
+                if(navigator.userAgent.indexOf("MSIE") != -1 && typeof document.body.style.maxHeight === "undefined") {
+					var listHeight = 0;
+					listItems.each(function() {
+						listHeight += this.offsetHeight;
+					});
+					var scrollbarsVisible = listHeight > options.scrollHeight;
+                    list.css('height', scrollbarsVisible ? options.scrollHeight : listHeight );
+					if (!scrollbarsVisible) {
+						// IE doesn't recalculate width when scrollbar disappears
+						listItems.width( list.width() - parseInt(listItems.css("padding-left")) - parseInt(listItems.css("padding-right")) );
+					}
+                }
+
+            }
+		},
+		selected: function() {
+			var selected = listItems && listItems.filter("." + CLASSES.ACTIVE).removeClass(CLASSES.ACTIVE);
+			return selected && selected.length && $.data(selected[0], "ac_data");
+		},
+		emptyList: function (){
+			list && list.empty();
+		},
+		unbind: function() {
+			element && element.remove();
+		}
+	};
+};
+
+$.fn.selection = function(start, end) {
+	if (start !== undefined) {
+		return this.each(function() {
+			if( this.createTextRange ){
+				var selRange = this.createTextRange();
+				if (end === undefined || start == end) {
+					selRange.move("character", start);
+					selRange.select();
+				} else {
+					selRange.collapse(true);
+					selRange.moveStart("character", start);
+					selRange.moveEnd("character", end);
+					selRange.select();
+				}
+			} else if( this.setSelectionRange ){
+				this.setSelectionRange(start, end);
+			} else if( this.selectionStart ){
+				this.selectionStart = start;
+				this.selectionEnd = end;
+			}
+		});
+	}
+	var field = this[0];
+	if ( field.createTextRange ) {
+		var range = document.selection.createRange(),
+			orig = field.value,
+			teststring = "<->",
+			textLength = range.text.length;
+		range.text = teststring;
+		var caretAt = field.value.indexOf(teststring);
+		field.value = orig;
+		this.selection(caretAt, caretAt + textLength);
+		return {
+			start: caretAt,
+			end: caretAt + textLength
+		}
+	} else if( field.selectionStart !== undefined ){
+		return {
+			start: field.selectionStart,
+			end: field.selectionEnd
+		}
+	}
+};
+
+})(jQuery);
+
+	/**
+ * jQuery.fn.sortElements
+ * --------------
+ * @author James Padolsey (http://james.padolsey.com)
+ * @version 0.11
+ * @updated 18-MAR-2010
+ * --------------
+ * @param Function comparator:
+ *   Exactly the same behaviour as [1,2,3].sort(comparator)
+ *
+ * @param Function getSortable
+ *   A function that should return the element that is
+ *   to be sorted. The comparator will run on the
+ *   current collection, but you may want the actual
+ *   resulting sort to occur on a parent or another
+ *   associated element.
+ *
+ *   E.g. $('td').sortElements(comparator, function(){
+ *      return this.parentNode;
+ *   })
+ *
+ *   The <td>'s parent (<tr>) will be sorted instead
+ *   of the <td> itself.
+ */
+jQuery.fn.sortElements = (function(){
+
+    var sort = [].sort;
+
+    return function(comparator, getSortable) {
+
+        getSortable = getSortable || function(){return this;};
+
+        var placements = this.map(function(){
+
+            var sortElement = getSortable.call(this),
+                parentNode = sortElement.parentNode,
+
+                // Since the element itself will change position, we have
+                // to have some way of storing it's original position in
+                // the DOM. The easiest way is to have a 'flag' node:
+                nextSibling = parentNode.insertBefore(
+                    document.createTextNode(''),
+                    sortElement.nextSibling
+                );
+
+            return function() {
+
+                if (parentNode === this) {
+                    throw new Error(
+                        "You can't sort elements if any one is a descendant of another."
+                    );
+                }
+
+                // Insert before flag:
+                parentNode.insertBefore(this, nextSibling);
+                // Remove flag:
+                parentNode.removeChild(nextSibling);
+
+            };
+
+        });
+
+        return sort.call(this, comparator).each(function(i){
+            placements[i].call(getSortable.call(this));
+        });
+
+    };
+
+})();
+	$(window).load(function() {
+	var $document = $(document);
+	var $left = $('#left');
+	var $right = $('#right');
+	var $rightInner = $('#rightInner');
+	var $splitter = $('#splitter');
+	var $groups = $('#groups');
+	var $content = $('#content');
+
+	// Menu
+
+	// Hide deep packages and namespaces
+	$('ul span', $groups).click(function(event) {
+		event.preventDefault();
+		event.stopPropagation();
+		$(this)
+			.toggleClass('collapsed')
+			.parent()
+				.next('ul')
+					.toggleClass('collapsed');
+	}).click();
+
+	$active = $('ul li.active', $groups);
+	if ($active.length > 0) {
+		// Open active
+		$('> a > span', $active).click();
+	} else {
+		$main = $('> ul > li.main', $groups);
+		if ($main.length > 0) {
+			// Open first level of the main project
+			$('> a > span', $main).click();
+		} else {
+			// Open first level of all
+			$('> ul > li > a > span', $groups).click();
+		}
+	}
+
+	// Content
+
+	// Search autocompletion
+	var autocompleteFound = false;
+	var autocompleteFiles = {'c': 'class', 'co': 'constant', 'f': 'function', 'm': 'class', 'mm': 'class', 'p': 'class', 'mp': 'class', 'cc': 'class'};
+	var $search = $('#search input[name=q]');
+	$search
+		.autocomplete(ApiGen.elements, {
+			matchContains: true,
+			scrollHeight: 200,
+			max: 20,
+			noRecord: '',
+			highlight: function(value, term) {
+				var term = term.toUpperCase().replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1").replace(/[A-Z0-9]/g, function(m, offset) {
+					return offset === 0 ? '(?:' + m + '|^' + m.toLowerCase() + ')' : '(?:(?:[^<>]|<[^<>]*>)*' + m + '|' + m.toLowerCase() + ')';
+				});
+				return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + term + ")(?![^<>]*>)(?![^&;]+;)"), "<strong>$1</strong>");
+			},
+			formatItem: function(data) {
+				return data.length > 1 ? data[1].replace(/^(.+\\)(.+)$/, '<span><small>$1</small>$2</span>') : data[0];
+			},
+			formatMatch: function(data) {
+				return data[1];
+			},
+			formatResult: function(data) {
+				return data[1];
+			},
+			show: function($list) {
+				var $items = $('li span', $list);
+				var maxWidth = Math.max.apply(null, $items.map(function() {
+					return $(this).width();
+				}));
+				// 10px padding
+				$list
+					.width(Math.max(maxWidth + 10, $search.innerWidth()))
+					.css('left', $search.offset().left + $search.outerWidth() - $list.outerWidth());
+			}
+		}).result(function(event, data) {
+			autocompleteFound = true;
+			var location = window.location.href.split('/');
+			location.pop();
+			var parts = data[1].split(/::|$/);
+			var file = $.sprintf(ApiGen.config.templates[autocompleteFiles[data[0]]].filename, parts[0].replace(/\(\)/, '').replace(/[^\w]/g, '.'));
+			if (parts[1]) {
+				file += '#' + ('mm' === data[0] || 'mp' === data[0] ? 'm' : '') + parts[1].replace(/([\w]+)\(\)/, '_$1');
+			}
+			location.push(file);
+			window.location = location.join('/');
+
+			// Workaround for Opera bug
+			$(this).closest('form').attr('action', location.join('/'));
+		}).closest('form')
+			.submit(function() {
+				var query = $search.val();
+				if ('' === query) {
+					return false;
+				}
+				return !autocompleteFound && '' !== $('#search input[name=cx]').val();
+			});
+
+	// Save natural order
+	$('table.summary tr[data-order]', $content).each(function(index) {
+		do {
+			index = '0' + index;
+		} while (index.length < 3);
+		$(this).attr('data-order-natural', index);
+	});
+
+	// Switch between natural and alphabetical order
+	var $caption = $('table.summary', $content)
+		.filter(':has(tr[data-order])')
+			.find('caption');
+	$caption
+		.click(function() {
+			var $this = $(this);
+			var order = $this.data('order') || 'natural';
+			order = 'natural' === order ? 'alphabetical' : 'natural';
+			$this.data('order', order);
+			$.cookie('order', order, {expires: 365});
+			var attr = 'alphabetical' === order ? 'data-order' : 'data-order-natural';
+			$this
+				.closest('table')
+					.find('tr').sortElements(function(a, b) {
+						return $(a).attr(attr) > $(b).attr(attr) ? 1 : -1;
+					});
+			return false;
+		})
+		.addClass('switchable')
+		.attr('title', 'Switch between natural and alphabetical order');
+	if ((null === $.cookie('order') && 'alphabetical' === ApiGen.config.options.elementsOrder) || 'alphabetical' === $.cookie('order')) {
+		$caption.click();
+	}
+
+	// Open details
+	if (ApiGen.config.options.elementDetailsCollapsed) {
+		$('tr', $content).filter(':has(.detailed)')
+			.click(function() {
+				var $this = $(this);
+				$('.short', $this).hide();
+				$('.detailed', $this).show();
+			});
+	}
+
+	// Splitter
+	var splitterWidth = $splitter.width();
+	var splitterPosition = $.cookie('splitter') ? parseInt($.cookie('splitter')) : null;
+	var splitterPositionBackup = $.cookie('splitterBackup') ? parseInt($.cookie('splitterBackup')) : null;
+	function setSplitterPosition(position)
+	{
+		splitterPosition = position;
+
+		$left.width(position);
+		$right.css('margin-left', position + splitterWidth);
+		$splitter.css('left', position);
+	}
+	function setContentWidth()
+	{
+		var width = $rightInner.width();
+		$rightInner
+			.toggleClass('medium', width <= 960)
+			.toggleClass('small', width <= 650);
+	}
+	$splitter.mousedown(function() {
+			$splitter.addClass('active');
+
+			$document.mousemove(function(event) {
+				if (event.pageX >= 230 && $document.width() - event.pageX >= 600 + splitterWidth) {
+					setSplitterPosition(event.pageX);
+					setContentWidth();
+				}
+			});
+
+			$()
+				.add($splitter)
+				.add($document)
+					.mouseup(function() {
+						$splitter
+							.removeClass('active')
+							.unbind('mouseup');
+						$document
+							.unbind('mousemove')
+							.unbind('mouseup');
+
+						$.cookie('splitter', splitterPosition, {expires: 365});
+					});
+
+			return false;
+		});
+	$splitter.dblclick(function() {
+		if (splitterPosition) {
+			splitterPositionBackup = $left.width();
+			setSplitterPosition(0);
+		} else {
+			setSplitterPosition(splitterPositionBackup);
+			splitterPositionBackup = null;
+		}
+
+		setContentWidth();
+
+		$.cookie('splitter', splitterPosition, {expires: 365});
+		$.cookie('splitterBackup', splitterPositionBackup, {expires: 365});
+	});
+	if (null !== splitterPosition) {
+		setSplitterPosition(splitterPosition);
+	}
+	setContentWidth();
+	$(window).resize(setContentWidth);
+
+	// Select selected lines
+	var matches = window.location.hash.substr(1).match(/^\d+(?:-\d+)?(?:,\d+(?:-\d+)?)*$/);
+	if (null !== matches) {
+		var lists = matches[0].split(',');
+		for (var i = 0; i < lists.length; i++) {
+			var lines = lists[i].split('-');
+			lines[0] = parseInt(lines[0]);
+			lines[1] = parseInt(lines[1] || lines[0]);
+			for (var j = lines[0]; j <= lines[1]; j++) {
+				$('#' + j).addClass('selected');
+			}
+		}
+
+		var $firstLine = $('#' + parseInt(matches[0]));
+		if ($firstLine.length > 0) {
+			$document.scrollTop($firstLine.offset().top);
+		}
+	}
+
+	// Save selected lines
+	var lastLine;
+	$('.l a').click(function(event) {
+		event.preventDefault();
+
+		var $selectedLine = $(this).parent();
+		var selectedLine = parseInt($selectedLine.attr('id'));
+
+		if (event.shiftKey) {
+			if (lastLine) {
+				for (var i = Math.min(selectedLine, lastLine); i <= Math.max(selectedLine, lastLine); i++) {
+					$('#' + i).addClass('selected');
+				}
+			} else {
+				$selectedLine.addClass('selected');
+			}
+		} else if (event.ctrlKey) {
+			$selectedLine.toggleClass('selected');
+		} else {
+			var $selected = $('.l.selected')
+				.not($selectedLine)
+				.removeClass('selected');
+			if ($selected.length > 0) {
+				$selectedLine.addClass('selected');
+			} else {
+				$selectedLine.toggleClass('selected');
+			}
+		}
+
+		lastLine = $selectedLine.hasClass('selected') ? selectedLine : null;
+
+		// Update hash
+		var lines = $('.l.selected')
+			.map(function() {
+				return parseInt($(this).attr('id'));
+			})
+			.get()
+			.sort(function(a, b) {
+				return a - b;
+			});
+
+		var hash = [];
+		var list = [];
+		for (var j = 0; j < lines.length; j++) {
+			if (0 === j && j + 1 === lines.length) {
+				hash.push(lines[j]);
+			} else if (0 === j) {
+				list[0] = lines[j];
+			} else if (lines[j - 1] + 1 !== lines[j] && j + 1 === lines.length) {
+				hash.push(list.join('-'));
+				hash.push(lines[j]);
+			} else if (lines[j - 1] + 1 !== lines[j]) {
+				hash.push(list.join('-'));
+				list = [lines[j]];
+			} else if (j + 1 === lines.length) {
+				list[1] = lines[j];
+				hash.push(list.join('-'));
+			} else {
+				list[1] = lines[j];
+			}
+		}
+
+		hash = hash.join(',');
+		$backup = $('#' + hash).removeAttr('id');
+		window.location.hash = hash;
+		$backup.attr('id', hash);
+	});
+});
+
diff --git a/api/resources/footer.png b/api/resources/footer.png
new file mode 100644
index 0000000000000000000000000000000000000000..d99890c2c2cbcc06dc27265decd4ab5868cbda54
GIT binary patch
diff --git a/api/resources/inherit.png b/api/resources/inherit.png
new file mode 100644
index 0000000000000000000000000000000000000000..957079b84e49bf180e0b601840ddcde0108e181e
GIT binary patch
diff --git a/api/resources/resize.png b/api/resources/resize.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb98a7a3c83122d833ce1f2987e049d946b8f4dd
GIT binary patch
diff --git a/api/resources/sort.png b/api/resources/sort.png
new file mode 100644
index 0000000000000000000000000000000000000000..0d0fea14dbdfb76546dbee3d912f44d3bbe4c5e3
GIT binary patch
diff --git a/api/resources/style.css b/api/resources/style.css
new file mode 100644
index 0000000..0d35c21
--- /dev/null
+++ b/api/resources/style.css
@@ -0,0 +1,614 @@
+body {
+	font: 13px/1.5 Verdana, 'Geneva CE', lucida, sans-serif;
+	margin: 0;
+	padding: 0;
+	background: #ffffff;
+	color: #333333;
+}
+
+h1, h2, h3, h4, caption {
+	font-family: 'Trebuchet MS', 'Geneva CE', lucida, sans-serif;
+	color: #053368;
+}
+
+h1 {
+	color: #1e5eb6;
+	font-size: 230%;
+	font-weight: normal;
+	margin: .3em 0;
+}
+
+h2 {
+	color: #1e5eb6;
+	font-size: 150%;
+	font-weight: normal;
+	margin: -.3em 0 .3em 0;
+}
+
+h3 {
+	font-size: 1.6em;
+	font-weight: normal;
+	margin-bottom: 2px;
+}
+
+h4 {
+	font-size: 100%;
+	font-weight: bold;
+	padding: 0;
+	margin: 0;
+}
+
+caption {
+	border: 1px solid #cccccc;
+	background: #ecede5;
+	font-weight: bold;
+	font-size: 1.2em;
+	padding: 3px 5px;
+	text-align: left;
+	margin-bottom: 0;
+}
+
+p {
+	margin: .7em 0 1em;
+	padding: 0;
+}
+
+hr {
+	margin: 2em 0 1em;
+	border: none;
+	border-top: 1px solid #cccccc;
+	height: 0;
+}
+
+a {
+	color: #006aeb;
+	padding: 3px 1px;
+	text-decoration: none;
+}
+
+h1 a {
+	color: #1e5eb6;
+}
+
+a:hover, a:active, a:focus, a:hover b, a:hover var {
+	background-color: #006aeb;
+	color: #ffffff !important;
+}
+
+code, var, pre {
+	font-family: monospace;
+}
+
+var {
+	font-weight: bold;
+	font-style: normal;
+	color: #ca8a04;
+}
+
+pre {
+	margin: 0;
+}
+
+code a b {
+	color: #000000;
+}
+
+.deprecated {
+	text-decoration: line-through;
+	opacity: .5;
+}
+
+.invalid {
+	color: #e71818;
+}
+
+.hidden {
+	display: none;
+}
+
+/* Left side */
+#left {
+	overflow: auto;
+	width: 270px;
+	height: 100%;
+	position: fixed;
+}
+
+/* Menu */
+#menu {
+	padding: 10px;
+}
+
+#menu ul {
+	list-style: none;
+	padding: 0;
+	margin: 0;
+}
+
+#menu ul ul {
+	padding-left: 10px;
+}
+
+#menu li {
+	white-space: nowrap;
+	position: relative;
+}
+
+#menu a {
+	display: block;
+	padding: 0 2px;
+}
+
+#menu .active > a, #menu > span {
+	color: #333333;
+	background: none;
+	font-weight: bold;
+}
+
+#menu .active > a.invalid {
+	color: #e71818;
+}
+
+#menu .active > a:hover, #menu .active > a:active, #menu .active > a:focus {
+	background-color: #006aeb;
+}
+
+#menu #groups span {
+	position: absolute;
+	top: 4px;
+	right: 2px;
+	cursor: pointer;
+	display: block;
+	width: 12px;
+	height: 12px;
+	background: url('collapsed.png') transparent 0 0 no-repeat;
+}
+
+#menu #groups span:hover {
+	background-position: -12px 0;
+}
+
+#menu #groups span.collapsed {
+	background-position: 0 -12px;
+}
+
+#menu #groups span.collapsed:hover {
+	background-position: -12px -12px;
+}
+
+#menu #groups ul.collapsed {
+	display: none;
+}
+
+/* Right side */
+#right {
+	overflow: auto;
+	margin-left: 275px;
+	height: 100%;
+	position: relative;
+	left: 0;
+	right: 0;
+}
+
+#rightInner {
+	max-width: 1000px;
+	min-width: 350px;
+}
+
+/* Search */
+#search {
+	float: right;
+	margin: 3px 8px;
+}
+
+#search input.text {
+	padding: 3px 5px;
+	width: 250px;
+}
+
+/* Autocomplete */
+.ac_results {
+	padding: 0;
+	border: 1px solid #cccccc;
+	background-color: #ffffff;
+	overflow: hidden;
+	z-index: 99999;
+}
+
+.ac_results ul {
+	width: 100%;
+	list-style-position: outside;
+	list-style: none;
+	padding: 0;
+	margin: 0;
+}
+
+.ac_results li {
+	margin: 0;
+	padding: 2px 5px;
+	cursor: default;
+	display: block;
+	font: 12px 'Trebuchet MS', 'Geneva CE', lucida, sans-serif;
+	line-height: 16px;
+	overflow: hidden;
+	white-space: nowrap;
+}
+
+.ac_results li strong {
+	color: #000000;
+}
+
+.ac_odd {
+	background-color: #eeeeee;
+}
+
+.ac_over {
+	background-color: #006aeb;
+	color: #ffffff;
+}
+
+.ac_results li.ac_over strong {
+	color: #ffffff;
+}
+
+/* Navigation */
+#navigation {
+	padding: 3px 8px;
+	background-color: #f6f6f4;
+	height: 26px;
+}
+
+#navigation ul {
+	list-style: none;
+	margin: 0 8px 4px 0;
+	padding: 0;
+	overflow: hidden;
+	float: left;
+}
+
+#navigation ul + ul {
+	border-left: 1px solid #000000;
+	padding-left: 8px;
+}
+
+#navigation ul li {
+	float: left;
+	margin: 2px;
+	padding: 0 3px;
+	font-family: Verdana, 'Geneva CE', lucida, sans-serif;
+	color: #808080;
+}
+
+#navigation ul li.active {
+	background-color: #053368;
+	color: #ffffff;
+	font-weight: bold;
+}
+
+#navigation ul li a {
+	color: #000000;
+	font-weight: bold;
+	padding: 0;
+}
+
+#navigation ul li span {
+	float: left;
+	padding: 0 3px;
+}
+
+#navigation ul li a:hover span, #navigation ul li a:active span, #navigation ul li a:focus span {
+	background-color: #006aeb;
+}
+
+/* Content */
+#content {
+	clear: both;
+	padding: 5px 15px;
+}
+
+.description pre {
+	padding: .6em;
+	background: #fcfcf7;
+}
+
+#content > .description {
+	background: #ecede5;
+	padding: 1px 8px;
+	margin: 1.2em 0;
+}
+
+#content > .description pre {
+	margin: .5em 0;
+}
+
+dl.tree {
+	margin: 1.2em 0;
+}
+
+dl.tree dd {
+	margin: 0;
+	padding: 0;
+}
+
+.info {
+	margin: 1.2em 0;
+}
+
+.summary {
+	border: 1px solid #cccccc;
+	border-collapse: collapse;
+	font-size: 1em;
+	width: 100%;
+	margin: 1.2em 0 2.4em;
+}
+
+.summary caption {
+	border-width: 1px 1px 0;
+}
+
+.summary caption.switchable {
+	background: #ecede5 url('sort.png') no-repeat center right;
+	cursor: pointer;
+}
+
+.summary td {
+	border: 1px solid #cccccc;
+	margin: 0;
+	padding: 3px 10px;
+	font-size: 1em;
+	vertical-align: top;
+}
+
+.summary td:first-child {
+	text-align: right;
+}
+
+.summary td hr {
+	margin: 3px -10px;
+}
+
+#packages.summary td:first-child, #namespaces.summary td:first-child, .inherited.summary td:first-child, .used.summary td:first-child {
+	text-align: left;
+}
+
+.summary tr:hover td {
+	background: #f6f6f4;
+}
+
+.summary .description pre {
+	border: .5em solid #ecede5;
+}
+
+.summary .description p {
+	margin: 0;
+}
+
+.summary .description p + p, .summary .description ul {
+	margin: 3px 0 0 0;
+}
+
+.summary .description.detailed h4 {
+	margin-top: 3px;
+}
+
+.summary dl {
+	margin: 0;
+}
+
+.summary dd {
+	margin: 0 0 0 25px;
+}
+
+.name, .attributes {
+	white-space: nowrap;
+}
+
+.value code {
+	white-space: pre-wrap;
+}
+
+td.name, td.attributes {
+	width: 1%;
+}
+
+td.attributes {
+	width: 1%;
+}
+
+.class .methods .name, .class .properties .name, .class .constants .name {
+	width: auto;
+	white-space: normal;
+}
+
+.class .methods .name > div > code {
+	white-space: pre-wrap;
+}
+
+.class .methods .name > div > code span, .function .value > code {
+	white-space: nowrap;
+}
+
+.class .methods td.name > div, .class td.value > div {
+	position: relative;
+	padding-right: 1em;
+}
+
+.anchor {
+	position: absolute;
+	top: 0;
+	right: 0;
+	line-height: 1;
+	font-size: 85%;
+	margin: 0;
+	color: #006aeb !important;
+}
+
+.list {
+	margin: 0 0 5px 25px;
+}
+
+div.invalid {
+	background-color: #fae4e0;
+	padding: 10px;
+}
+
+/* Splitter */
+#splitter {
+	position: fixed;
+	height: 100%;
+	width: 5px;
+	left: 270px;
+	background: #1e5eb6 url('resize.png') left center no-repeat;
+	cursor: e-resize;
+}
+
+#splitter.active {
+	opacity: .5;
+}
+
+/* Footer */
+#footer {
+	border-top: 1px solid #e9eeef;
+	clear: both;
+	color: #a7a7a7;
+	font-size: 8pt;
+	text-align: center;
+	padding: 20px 0 0;
+	margin: 3em 0 0;
+	height: 90px;
+	background: #ffffff url('footer.png') no-repeat center top;
+}
+
+/* Tree */
+div.tree ul {
+	list-style: none;
+	background: url('tree-vertical.png') left repeat-y;
+	padding: 0;
+	margin-left: 20px;
+}
+
+div.tree li {
+	margin: 0;
+	padding: 0;
+}
+
+div.tree div {
+	padding-left: 30px;
+}
+
+div.tree div.notlast {
+	background: url('tree-hasnext.png') left 10px no-repeat;
+}
+
+div.tree div.last {
+	background: url('tree-last.png') left -240px no-repeat;
+}
+
+div.tree li.last {
+	background: url('tree-cleaner.png') left center repeat-y;
+}
+
+div.tree span.padding {
+	padding-left: 15px;
+}
+
+/* Source code */
+.php-keyword1 {
+	color: #e71818;
+	font-weight: bold;
+}
+
+.php-keyword2 {
+	font-weight: bold;
+}
+
+.php-var {
+	color: #d59401;
+	font-weight: bold;
+}
+
+.php-num {
+	color: #cd0673;
+}
+
+.php-quote {
+	color: #008000;
+}
+
+.php-comment {
+	color: #929292;
+}
+
+.xlang {
+	color: #ff0000;
+	font-weight: bold;
+}
+
+span.l {
+	display: block;
+}
+
+span.l.selected {
+	background: #f6f6f4;
+}
+
+span.l a {
+	color: #333333;
+}
+
+span.l a:hover, div.l a:active, div.l a:focus {
+	background: transparent;
+	color: #333333 !important;
+}
+
+span.l .php-var a {
+	color: #d59401;
+}
+
+span.l .php-var a:hover, span.l .php-var a:active, span.l .php-var a:focus {
+	color: #d59401 !important;
+}
+
+span.l a.l {
+	padding-left: 2px;
+	color: #c0c0c0;
+}
+
+span.l a.l:hover, span.l a.l:active, span.l a.l:focus {
+	background: transparent;
+	color: #c0c0c0 !important;
+}
+
+#rightInner.medium #navigation {
+	height: 52px;
+}
+
+#rightInner.medium #navigation ul:first-child + ul {
+	clear: left;
+	border: none;
+	padding: 0;
+}
+
+#rightInner.medium .name, #rightInner.medium .attributes {
+	white-space: normal;
+}
+
+#rightInner.small #search {
+	float: left;
+}
+
+#rightInner.small #navigation {
+	height: 78px;
+}
+
+#rightInner.small #navigation ul:first-child {
+	clear: both;
+}
+
+/* global style */
+.left, .summary td.left {
+	text-align: left;
+}
+.right, .summary td.right {
+	text-align: right;
+}
diff --git a/api/resources/tree-cleaner.png b/api/resources/tree-cleaner.png
new file mode 100644
index 0000000000000000000000000000000000000000..2eb9085be54558b89d461883c440f5f46f9736c1
GIT binary patch
diff --git a/api/resources/tree-hasnext.png b/api/resources/tree-hasnext.png
new file mode 100644
index 0000000000000000000000000000000000000000..91d6b79ab4c4d479f1bbd2d035aacf682d6b6b24
GIT binary patch
diff --git a/api/resources/tree-last.png b/api/resources/tree-last.png
new file mode 100644
index 0000000000000000000000000000000000000000..7f319f8f950bf32e5932d6d37e424806edb248a4
GIT binary patch
diff --git a/api/resources/tree-vertical.png b/api/resources/tree-vertical.png
new file mode 100644
index 0000000000000000000000000000000000000000..384908b28e9958c9842f258350799221e3fa2020
GIT binary patch
diff --git a/api/source-class-phpmock.phpunit.PHPMock.html b/api/source-class-phpmock.phpunit.PHPMock.html
new file mode 100644
index 0000000..7bedd21
--- /dev/null
+++ b/api/source-class-phpmock.phpunit.PHPMock.html
@@ -0,0 +1,202 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="utf-8">
+	<meta name="robots" content="noindex">
+
+	<title>File PHPMock.php</title>
+
+	<link rel="stylesheet" href="resources/style.css?e99947befd7bf673c6b43ff75e9e0f170c88a60e">
+
+</head>
+
+<body>
+<div id="left">
+	<div id="menu">
+		<a href="index.html" title="Overview"><span>Overview</span></a>
+
+
+		<div id="groups">
+				<h3>Namespaces</h3>
+			<ul>
+				<li>
+					<a href="namespace-phpmock.html">
+						phpmock<span></span>
+					</a>
+
+						<ul>
+				<li>
+					<a href="namespace-phpmock.phpunit.html">
+						phpunit					</a>
+
+						</li>
+							</ul></li>
+			</ul>
+		</div>
+
+		<hr>
+
+
+		<div id="elements">
+
+
+			<h3>Traits</h3>
+			<ul>
+				<li class="active"><a href="class-phpmock.phpunit.PHPMock.html">phpmock\phpunit\PHPMock</a></li>
+			</ul>
+
+
+
+		</div>
+	</div>
+</div>
+
+<div id="splitter"></div>
+
+<div id="right">
+<div id="rightInner">
+	<form id="search">
+		<input type="hidden" name="cx" value="">
+		<input type="hidden" name="ie" value="UTF-8">
+		<input type="text" name="q" class="text" placeholder="Search">
+	</form>
+
+	<div id="navigation">
+		<ul>
+			<li>
+				<a href="index.html" title="Overview"><span>Overview</span></a>
+			</li>
+			<li>
+<span>Namespace</span>			</li>
+			<li>
+				<a href="class-phpmock.phpunit.PHPMock.html" title="Summary of phpmock\phpunit\PHPMock"><span>Class</span></a>
+			</li>
+		</ul>
+		<ul>
+		</ul>
+		<ul>
+		</ul>
+	</div>
+
+<pre><code><span id="1" class="l"><a href="#1">  1: </a><span class="xlang">&lt;?php</span>
+</span><span id="2" class="l"><a href="#2">  2: </a>
+</span><span id="3" class="l"><a href="#3">  3: </a><span class="php-keyword1">namespace</span> phpmock\phpunit;
+</span><span id="4" class="l"><a href="#4">  4: </a>
+</span><span id="5" class="l"><a href="#5">  5: </a><span class="php-keyword1">use</span> phpmock\integration\MockDelegateFunctionBuilder;
+</span><span id="6" class="l"><a href="#6">  6: </a><span class="php-keyword1">use</span> malkusch\phpmock\MockBuilder;
+</span><span id="7" class="l"><a href="#7">  7: </a><span class="php-keyword1">use</span> malkusch\phpmock\Deactivatable;
+</span><span id="8" class="l"><a href="#8">  8: </a>
+</span><span id="9" class="l"><a href="#9">  9: </a><span class="php-comment">/**
+</span></span><span id="10" class="l"><a href="#10"> 10: </a><span class="php-comment"> * Adds building a function mock functionality into PHPUnit_Framework_TestCase.
+</span></span><span id="11" class="l"><a href="#11"> 11: </a><span class="php-comment"> *
+</span></span><span id="12" class="l"><a href="#12"> 12: </a><span class="php-comment"> * Use this trait in your PHPUnit_Framework_TestCase:
+</span></span><span id="13" class="l"><a href="#13"> 13: </a><span class="php-comment"> * &lt;code&gt;
+</span></span><span id="14" class="l"><a href="#14"> 14: </a><span class="php-comment"> * &lt;?php
+</span></span><span id="15" class="l"><a href="#15"> 15: </a><span class="php-comment"> *
+</span></span><span id="16" class="l"><a href="#16"> 16: </a><span class="php-comment"> * namespace foo;
+</span></span><span id="17" class="l"><a href="#17"> 17: </a><span class="php-comment"> *
+</span></span><span id="18" class="l"><a href="#18"> 18: </a><span class="php-comment"> * use malkusch\phpmock\phpunit\PHPMock;
+</span></span><span id="19" class="l"><a href="#19"> 19: </a><span class="php-comment"> *
+</span></span><span id="20" class="l"><a href="#20"> 20: </a><span class="php-comment"> * class FooTest extends \PHPUnit_Framework_TestCase
+</span></span><span id="21" class="l"><a href="#21"> 21: </a><span class="php-comment"> * {
+</span></span><span id="22" class="l"><a href="#22"> 22: </a><span class="php-comment"> *
+</span></span><span id="23" class="l"><a href="#23"> 23: </a><span class="php-comment"> *     use PHPMock;
+</span></span><span id="24" class="l"><a href="#24"> 24: </a><span class="php-comment"> *
+</span></span><span id="25" class="l"><a href="#25"> 25: </a><span class="php-comment"> *     public function testBar()
+</span></span><span id="26" class="l"><a href="#26"> 26: </a><span class="php-comment"> *     {
+</span></span><span id="27" class="l"><a href="#27"> 27: </a><span class="php-comment"> *         $time = $this-&gt;getFunctionMock(__NAMESPACE__, &quot;time&quot;);
+</span></span><span id="28" class="l"><a href="#28"> 28: </a><span class="php-comment"> *         $time-&gt;expects($this-&gt;once())-&gt;willReturn(3);
+</span></span><span id="29" class="l"><a href="#29"> 29: </a><span class="php-comment"> *         $this-&gt;assertEquals(3, time());
+</span></span><span id="30" class="l"><a href="#30"> 30: </a><span class="php-comment"> *     }
+</span></span><span id="31" class="l"><a href="#31"> 31: </a><span class="php-comment"> * }
+</span></span><span id="32" class="l"><a href="#32"> 32: </a><span class="php-comment"> * &lt;/code&gt;
+</span></span><span id="33" class="l"><a href="#33"> 33: </a><span class="php-comment"> *
+</span></span><span id="34" class="l"><a href="#34"> 34: </a><span class="php-comment"> * @author Markus Malkusch &lt;markus@malkusch.de&gt;
+</span></span><span id="35" class="l"><a href="#35"> 35: </a><span class="php-comment"> * @link bitcoin:1335STSwu9hST4vcMRppEPgENMHD2r1REK Donations
+</span></span><span id="36" class="l"><a href="#36"> 36: </a><span class="php-comment"> * @license http://www.wtfpl.net/txt/copying/ WTFPL
+</span></span><span id="37" class="l"><a href="#37"> 37: </a><span class="php-comment"> */</span>
+</span><span id="38" class="l"><a href="#38"> 38: </a><span class="php-keyword1">trait</span> PHPMock
+</span><span id="39" class="l"><a href="#39"> 39: </a>{
+</span><span id="40" class="l"><a href="#40"> 40: </a>
+</span><span id="41" class="l"><a href="#41"> 41: </a>    <span class="php-comment">/**
+</span></span><span id="42" class="l"><a href="#42"> 42: </a><span class="php-comment">     * Returns a builder object to create mock objects using a fluent interface.
+</span></span><span id="43" class="l"><a href="#43"> 43: </a><span class="php-comment">     *
+</span></span><span id="44" class="l"><a href="#44"> 44: </a><span class="php-comment">     * This method exists in PHPUnit_Framework_TestCase.
+</span></span><span id="45" class="l"><a href="#45"> 45: </a><span class="php-comment">     *
+</span></span><span id="46" class="l"><a href="#46"> 46: </a><span class="php-comment">     * @param string $className Name of the class to mock.
+</span></span><span id="47" class="l"><a href="#47"> 47: </a><span class="php-comment">     * @return \PHPUnit_Framework_MockObject_MockBuilder
+</span></span><span id="48" class="l"><a href="#48"> 48: </a><span class="php-comment">     * @see \PHPUnit_Framework_TestCase::getMockBuilder()
+</span></span><span id="49" class="l"><a href="#49"> 49: </a><span class="php-comment">     * @internal
+</span></span><span id="50" class="l"><a href="#50"> 50: </a><span class="php-comment">     */</span>
+</span><span id="51" class="l"><a href="#51"> 51: </a>    <span class="php-keyword1">abstract</span> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> getMockBuilder(<span class="php-var">$className</span>);
+</span><span id="52" class="l"><a href="#52"> 52: </a>
+</span><span id="53" class="l"><a href="#53"> 53: </a>    <span class="php-comment">/**
+</span></span><span id="54" class="l"><a href="#54"> 54: </a><span class="php-comment">     * Returns the test result.
+</span></span><span id="55" class="l"><a href="#55"> 55: </a><span class="php-comment">     *
+</span></span><span id="56" class="l"><a href="#56"> 56: </a><span class="php-comment">     * This method exists in PHPUnit_Framework_TestCase.
+</span></span><span id="57" class="l"><a href="#57"> 57: </a><span class="php-comment">     *
+</span></span><span id="58" class="l"><a href="#58"> 58: </a><span class="php-comment">     * @return \PHPUnit_Framework_TestResult The test result.
+</span></span><span id="59" class="l"><a href="#59"> 59: </a><span class="php-comment">     * @see \PHPUnit_Framework_TestCase::getTestResultObject()
+</span></span><span id="60" class="l"><a href="#60"> 60: </a><span class="php-comment">     * @internal
+</span></span><span id="61" class="l"><a href="#61"> 61: </a><span class="php-comment">     */</span>
+</span><span id="62" class="l"><a href="#62"> 62: </a>    <span class="php-keyword1">abstract</span> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> getTestResultObject();
+</span><span id="63" class="l"><a href="#63"> 63: </a>
+</span><span id="64" class="l"><a href="#64"> 64: </a>    <span class="php-comment">/**
+</span></span><span id="65" class="l"><a href="#65"> 65: </a><span class="php-comment">     * Returns the enabled function mock.
+</span></span><span id="66" class="l"><a href="#66"> 66: </a><span class="php-comment">     *
+</span></span><span id="67" class="l"><a href="#67"> 67: </a><span class="php-comment">     * This mock will be disabled automatically after the test run.
+</span></span><span id="68" class="l"><a href="#68"> 68: </a><span class="php-comment">     *
+</span></span><span id="69" class="l"><a href="#69"> 69: </a><span class="php-comment">     * @param string $namespace The function namespace.
+</span></span><span id="70" class="l"><a href="#70"> 70: </a><span class="php-comment">     * @param string $name      The function name.
+</span></span><span id="71" class="l"><a href="#71"> 71: </a><span class="php-comment">     *
+</span></span><span id="72" class="l"><a href="#72"> 72: </a><span class="php-comment">     * @return \PHPUnit_Framework_MockObject_MockObject The PHPUnit mock.
+</span></span><span id="73" class="l"><a href="#73"> 73: </a><span class="php-comment">     */</span>
+</span><span id="74" class="l"><a href="#74"> 74: </a>    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> getFunctionMock(<span class="php-var">$namespace</span>, <span class="php-var">$name</span>)
+</span><span id="75" class="l"><a href="#75"> 75: </a>    {
+</span><span id="76" class="l"><a href="#76"> 76: </a>        <span class="php-var">$delegateBuilder</span> = <span class="php-keyword1">new</span> MockDelegateFunctionBuilder();
+</span><span id="77" class="l"><a href="#77"> 77: </a>        <span class="php-var">$delegateBuilder</span>-&gt;build(<span class="php-var">$name</span>);
+</span><span id="78" class="l"><a href="#78"> 78: </a>        
+</span><span id="79" class="l"><a href="#79"> 79: </a>        <span class="php-var">$mock</span> = <span class="php-var">$this</span>-&gt;getMockBuilder(<span class="php-var">$delegateBuilder</span>-&gt;getFullyQualifiedClassName())-&gt;getMockForAbstractClass();
+</span><span id="80" class="l"><a href="#80"> 80: </a>        
+</span><span id="81" class="l"><a href="#81"> 81: </a>        <span class="php-var">$mock</span>-&gt;__phpunit_getInvocationMocker()-&gt;addMatcher(<span class="php-keyword1">new</span> DefaultArgumentRemover());
+</span><span id="82" class="l"><a href="#82"> 82: </a>        
+</span><span id="83" class="l"><a href="#83"> 83: </a>        <span class="php-var">$functionMockBuilder</span> = <span class="php-keyword1">new</span> MockBuilder();
+</span><span id="84" class="l"><a href="#84"> 84: </a>        <span class="php-var">$functionMockBuilder</span>-&gt;setNamespace(<span class="php-var">$namespace</span>)
+</span><span id="85" class="l"><a href="#85"> 85: </a>                            -&gt;setName(<span class="php-var">$name</span>)
+</span><span id="86" class="l"><a href="#86"> 86: </a>                            -&gt;setFunctionProvider(<span class="php-var">$mock</span>);
+</span><span id="87" class="l"><a href="#87"> 87: </a>                
+</span><span id="88" class="l"><a href="#88"> 88: </a>        <span class="php-var">$functionMock</span> = <span class="php-var">$functionMockBuilder</span>-&gt;build();
+</span><span id="89" class="l"><a href="#89"> 89: </a>        <span class="php-var">$functionMock</span>-&gt;enable();
+</span><span id="90" class="l"><a href="#90"> 90: </a>        
+</span><span id="91" class="l"><a href="#91"> 91: </a>        <span class="php-var">$this</span>-&gt;registerForTearDown(<span class="php-var">$functionMock</span>);
+</span><span id="92" class="l"><a href="#92"> 92: </a>        
+</span><span id="93" class="l"><a href="#93"> 93: </a>        <span class="php-var">$proxy</span> = <span class="php-keyword1">new</span> MockObjectProxy(<span class="php-var">$mock</span>);
+</span><span id="94" class="l"><a href="#94"> 94: </a>        <span class="php-keyword1">return</span> <span class="php-var">$proxy</span>;
+</span><span id="95" class="l"><a href="#95"> 95: </a>    }
+</span><span id="96" class="l"><a href="#96"> 96: </a>    
+</span><span id="97" class="l"><a href="#97"> 97: </a>    <span class="php-comment">/**
+</span></span><span id="98" class="l"><a href="#98"> 98: </a><span class="php-comment">     * Automatically disable function mocks after the test was run.
+</span></span><span id="99" class="l"><a href="#99"> 99: </a><span class="php-comment">     *
+</span></span><span id="100" class="l"><a href="#100">100: </a><span class="php-comment">     * If you use getFunctionMock() you don't need this method. This method
+</span></span><span id="101" class="l"><a href="#101">101: </a><span class="php-comment">     * is meant for a Deactivatable (e.g. a MockEnvironment) which was
+</span></span><span id="102" class="l"><a href="#102">102: </a><span class="php-comment">     * directly created with PHPMock's API.
+</span></span><span id="103" class="l"><a href="#103">103: </a><span class="php-comment">     *
+</span></span><span id="104" class="l"><a href="#104">104: </a><span class="php-comment">     * @param Deactivatable $deactivatable The function mocks.
+</span></span><span id="105" class="l"><a href="#105">105: </a><span class="php-comment">     */</span>
+</span><span id="106" class="l"><a href="#106">106: </a>    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> registerForTearDown(Deactivatable <span class="php-var">$deactivatable</span>)
+</span><span id="107" class="l"><a href="#107">107: </a>    {
+</span><span id="108" class="l"><a href="#108">108: </a>        <span class="php-var">$result</span> = <span class="php-var">$this</span>-&gt;getTestResultObject();
+</span><span id="109" class="l"><a href="#109">109: </a>        <span class="php-var">$result</span>-&gt;addListener(<span class="php-keyword1">new</span> MockDisabler(<span class="php-var">$deactivatable</span>));
+</span><span id="110" class="l"><a href="#110">110: </a>    }
+</span><span id="111" class="l"><a href="#111">111: </a>}
+</span><span id="112" class="l"><a href="#112">112: </a></span></code></pre>
+
+	<div id="footer">
+		 API documentation generated by <a href="http://apigen.org">ApiGen</a>
+	</div>
+</div>
+</div>
+<script src="resources/combined.js?479ca6fda5d877432bb787eaa1a8f6f67b72e18c"></script>
+<script src="elementlist.js?35b6369da1b2791d079f3a90139a4c47f746412b"></script>
+</body>
+</html>

From 39a973d8b7df2b264a65544273c4014861f07927 Mon Sep 17 00:00:00 2001
From: Markus Malkusch <markus@malkusch.de>
Date: Thu, 2 Apr 2015 20:13:38 +0200
Subject: [PATCH 3/7] remaing to php-mock-phpunit

---
 Makefile      | 2 +-
 apigen.neon   | 2 +-
 composer.json | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/Makefile b/Makefile
index 9644ca9..5592eca 100644
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,7 @@ doc: composer-update
 	./vendor/bin/apigen generate
 
 composer-clean:
-	rm -rf vendor/php-mock/phpunit/ composer.lock
+	rm -rf vendor/php-mock/php-mock-phpunit/ composer.lock
 
 composer-update: composer-clean
 	composer.phar update
diff --git a/apigen.neon b/apigen.neon
index fc353ce..fea3f76 100644
--- a/apigen.neon
+++ b/apigen.neon
@@ -1,4 +1,4 @@
 destination: api
 source:
-	- vendor/php-mock/phpunit/classes/
+	- vendor/php-mock/php-mock-phpunit/classes/
 	
diff --git a/composer.json b/composer.json
index e9ff093..15e4c80 100644
--- a/composer.json
+++ b/composer.json
@@ -2,7 +2,7 @@
     "name": "php-mock/phpunit-doc",
     "require": {
         "php": ">=5",
-	"php-mock/phpunit": "dev-master",
+	"php-mock/php-mock-phpunit": "dev-master",
 	"apigen/apigen": "^4"
     }
 }

From 23f7b5d161ddfad13ca172783ae4e35a81a7c51f Mon Sep 17 00:00:00 2001
From: Markus Malkusch <markus@malkusch.de>
Date: Thu, 2 Apr 2015 22:26:23 +0200
Subject: [PATCH 4/7] fix wrong namespace in documentation

---
 api/class-phpmock.phpunit.PHPMock.html        | 4 ++--
 api/source-class-phpmock.phpunit.PHPMock.html | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/api/class-phpmock.phpunit.PHPMock.html b/api/class-phpmock.phpunit.PHPMock.html
index 8c6e3c5..7da9846 100644
--- a/api/class-phpmock.phpunit.PHPMock.html
+++ b/api/class-phpmock.phpunit.PHPMock.html
@@ -90,7 +90,7 @@ <h1>Trait PHPMock</h1>
 
 <span class="php-keyword1">namespace</span> foo;
 
-<span class="php-keyword1">use</span> malkusch\phpmock\phpunit\PHPMock;
+<span class="php-keyword1">use</span> phpmock\phpunit\PHPMock;
 
 <span class="php-keyword1">class</span> FooTest <span class="php-keyword1">extends</span> \PHPUnit_Framework_TestCase
 {
@@ -189,7 +189,7 @@ <h4>Returns</h4>
 
 		<td class="name"><div>
 		<a class="anchor" href="#_registerForTearDown">#</a>
-		<code><a href="source-class-phpmock.phpunit.PHPMock.html#97-110" title="Go to source code">registerForTearDown</a>( <span>malkusch\phpmock\Deactivatable <var>$deactivatable</var></span> )</code>
+		<code><a href="source-class-phpmock.phpunit.PHPMock.html#97-110" title="Go to source code">registerForTearDown</a>( <span>phpmock\Deactivatable <var>$deactivatable</var></span> )</code>
 
 		<div class="description short">
 			<p>Automatically disable function mocks after the test was run.</p>
diff --git a/api/source-class-phpmock.phpunit.PHPMock.html b/api/source-class-phpmock.phpunit.PHPMock.html
index 7bedd21..9e447ad 100644
--- a/api/source-class-phpmock.phpunit.PHPMock.html
+++ b/api/source-class-phpmock.phpunit.PHPMock.html
@@ -83,8 +83,8 @@ <h3>Traits</h3>
 </span><span id="3" class="l"><a href="#3">  3: </a><span class="php-keyword1">namespace</span> phpmock\phpunit;
 </span><span id="4" class="l"><a href="#4">  4: </a>
 </span><span id="5" class="l"><a href="#5">  5: </a><span class="php-keyword1">use</span> phpmock\integration\MockDelegateFunctionBuilder;
-</span><span id="6" class="l"><a href="#6">  6: </a><span class="php-keyword1">use</span> malkusch\phpmock\MockBuilder;
-</span><span id="7" class="l"><a href="#7">  7: </a><span class="php-keyword1">use</span> malkusch\phpmock\Deactivatable;
+</span><span id="6" class="l"><a href="#6">  6: </a><span class="php-keyword1">use</span> phpmock\MockBuilder;
+</span><span id="7" class="l"><a href="#7">  7: </a><span class="php-keyword1">use</span> phpmock\Deactivatable;
 </span><span id="8" class="l"><a href="#8">  8: </a>
 </span><span id="9" class="l"><a href="#9">  9: </a><span class="php-comment">/**
 </span></span><span id="10" class="l"><a href="#10"> 10: </a><span class="php-comment"> * Adds building a function mock functionality into PHPUnit_Framework_TestCase.
@@ -95,7 +95,7 @@ <h3>Traits</h3>
 </span></span><span id="15" class="l"><a href="#15"> 15: </a><span class="php-comment"> *
 </span></span><span id="16" class="l"><a href="#16"> 16: </a><span class="php-comment"> * namespace foo;
 </span></span><span id="17" class="l"><a href="#17"> 17: </a><span class="php-comment"> *
-</span></span><span id="18" class="l"><a href="#18"> 18: </a><span class="php-comment"> * use malkusch\phpmock\phpunit\PHPMock;
+</span></span><span id="18" class="l"><a href="#18"> 18: </a><span class="php-comment"> * use phpmock\phpunit\PHPMock;
 </span></span><span id="19" class="l"><a href="#19"> 19: </a><span class="php-comment"> *
 </span></span><span id="20" class="l"><a href="#20"> 20: </a><span class="php-comment"> * class FooTest extends \PHPUnit_Framework_TestCase
 </span></span><span id="21" class="l"><a href="#21"> 21: </a><span class="php-comment"> * {

From f6fd915cb384721ac849d50a67452bf5aeb4bb11 Mon Sep 17 00:00:00 2001
From: Markus Malkusch <markus@malkusch.de>
Date: Thu, 5 Nov 2015 00:30:13 +0100
Subject: [PATCH 5/7] [#4] add PHPMock::defineFunctionMock() as a workaround
 for bug#68541

---
 api/404.html                                  |   9 +-
 api/class-phpmock.phpunit.PHPMock.html        |  58 +++-
 api/index.html                                |   9 +-
 api/namespace-phpmock.html                    |   7 +-
 api/namespace-phpmock.phpunit.html            |   9 +-
 api/resources/combined.js                     | 128 +++++----
 api/resources/style.css                       |   5 +
 api/source-class-phpmock.phpunit.PHPMock.html | 263 ++++++++++--------
 8 files changed, 302 insertions(+), 186 deletions(-)

diff --git a/api/404.html b/api/404.html
index bbe2acd..fe10ed6 100644
--- a/api/404.html
+++ b/api/404.html
@@ -6,7 +6,7 @@
 
 	<title>Page not found</title>
 
-	<link rel="stylesheet" href="resources/style.css?e99947befd7bf673c6b43ff75e9e0f170c88a60e">
+	<link rel="stylesheet" href="resources/style.css?c2f33731c1948fbed7c333554678bfa68d4817da">
 
 </head>
 
@@ -42,7 +42,7 @@ <h3>Namespaces</h3>
 
 			<h3>Traits</h3>
 			<ul>
-				<li class="active"><a href="class-phpmock.phpunit.PHPMock.html">phpmock\phpunit\PHPMock</a></li>
+				<li><a href="class-phpmock.phpunit.PHPMock.html">phpmock\phpunit\PHPMock</a></li>
 			</ul>
 
 
@@ -69,8 +69,7 @@ <h3>Traits</h3>
 			<li>
 <span>Namespace</span>			</li>
 			<li>
-				<a href="class-phpmock.phpunit.PHPMock.html" title="Summary of phpmock\phpunit\PHPMock"><span>Class</span></a>
-			</li>
+<span>Class</span>			</li>
 		</ul>
 		<ul>
 		</ul>
@@ -90,7 +89,7 @@ <h1>Page not found</h1>
 	</div>
 </div>
 </div>
-<script src="resources/combined.js?479ca6fda5d877432bb787eaa1a8f6f67b72e18c"></script>
+<script src="resources/combined.js?34194bff555556dd495479fac76127b65c55669f"></script>
 <script src="elementlist.js"></script>
 </body>
 </html>
diff --git a/api/class-phpmock.phpunit.PHPMock.html b/api/class-phpmock.phpunit.PHPMock.html
index 7da9846..205ed08 100644
--- a/api/class-phpmock.phpunit.PHPMock.html
+++ b/api/class-phpmock.phpunit.PHPMock.html
@@ -5,7 +5,7 @@
 
 	<title>Trait phpmock\phpunit\PHPMock</title>
 
-	<link rel="stylesheet" href="resources/style.css?e99947befd7bf673c6b43ff75e9e0f170c88a60e">
+	<link rel="stylesheet" href="resources/style.css?c2f33731c1948fbed7c333554678bfa68d4817da">
 
 </head>
 
@@ -126,7 +126,7 @@ <h1>Trait PHPMock</h1>
 				Markus Malkusch <a href="&#109;&#97;&#105;&#108;&#116;&#x6f;&#x3a;&#x6d;&#x61;&#114;&#107;&#117;&#115;&#64;&#x6d;&#x61;&#x6c;&#x6b;u&#115;&#99;&#104;&#46;&#x64;&#x65;">&#x6d;&#x61;&#114;&#107;&#117;&#115;&#64;&#x6d;&#x61;&#x6c;&#x6b;u&#115;&#99;&#104;&#46;&#x64;&#x65;</a><br>
 				<b>Link:</b>
 				<a href="bitcoin:1335STSwu9hST4vcMRppEPgENMHD2r1REK">Donations</a><br>
-			<b>Located at</b> <a href="source-class-phpmock.phpunit.PHPMock.html#9-111" title="Go to source code">PHPMock.php</a>
+			<b>Located at</b> <a href="source-class-phpmock.phpunit.PHPMock.html#9-140" title="Go to source code">PHPMock.php</a>
 		<br>
 	</div>
 
@@ -213,6 +213,60 @@ <h4>Parameters</h4>
 
 
 
+		</div>
+		</div></td>
+	</tr>
+	<tr data-order="defineFunctionMock" id="_defineFunctionMock">
+
+		<td class="attributes"><code>
+			 public 
+
+			
+			
+			</code>
+		</td>
+
+		<td class="name"><div>
+		<a class="anchor" href="#_defineFunctionMock">#</a>
+		<code><a href="source-class-phpmock.phpunit.PHPMock.html#112-139" title="Go to source code">defineFunctionMock</a>( <span>string <var>$namespace</var></span>, <span>string <var>$name</var></span> )</code>
+
+		<div class="description short">
+			<p>Defines the mocked function in the given namespace.</p>
+		</div>
+
+		<div class="description detailed hidden">
+			<p>Defines the mocked function in the given namespace.</p>
+
+<p>In most cases you don't have to call this method. <code><a href="class-phpmock.phpunit.PHPMock.html#_getFunctionMock">phpmock\phpunit\PHPMock::getFunctionMock()</a></code>
+is doing this for you. But if the mock is defined after the first call in the
+tested class, the tested class doesn't resolve to the mock. This is
+documented in Bug #68541. You therefore have to define the namespaced
+function before the first call (e.g. with @beforeClass).</p>
+
+<p>Defining the function has no side effects. If the function was
+already defined this method does nothing.</p>
+
+
+				<h4>Parameters</h4>
+				<div class="list"><dl>
+					<dt><var>$namespace</var></dt>
+					<dd>The function namespace.</dd>
+					<dt><var>$name</var></dt>
+					<dd>The function name.</dd>
+				</dl></div>
+
+
+
+				<h4>See</h4>
+				<div class="list">
+						<code><a href="class-phpmock.phpunit.PHPMock.html#_getFunctionMock">phpmock\phpunit\PHPMock::getFunctionMock()</a></code><br>
+				</div>
+				<h4>Link</h4>
+				<div class="list">
+						<a href="https://bugs.php.net/bug.php?id=68541">Bug #68541</a><br>
+				</div>
+
+
 		</div>
 		</div></td>
 	</tr>
diff --git a/api/index.html b/api/index.html
index f1b1868..f097108 100644
--- a/api/index.html
+++ b/api/index.html
@@ -5,7 +5,7 @@
 
 	<title>Overview</title>
 
-	<link rel="stylesheet" href="resources/style.css?e99947befd7bf673c6b43ff75e9e0f170c88a60e">
+	<link rel="stylesheet" href="resources/style.css?c2f33731c1948fbed7c333554678bfa68d4817da">
 
 </head>
 
@@ -40,7 +40,7 @@ <h3>Namespaces</h3>
 
 			<h3>Traits</h3>
 			<ul>
-				<li class="active"><a href="class-phpmock.phpunit.PHPMock.html">phpmock\phpunit\PHPMock</a></li>
+				<li><a href="class-phpmock.phpunit.PHPMock.html">phpmock\phpunit\PHPMock</a></li>
 			</ul>
 
 
@@ -66,8 +66,7 @@ <h3>Traits</h3>
 			<li>
 <span>Namespace</span>			</li>
 			<li>
-				<a href="class-phpmock.phpunit.PHPMock.html" title="Summary of phpmock\phpunit\PHPMock"><span>Class</span></a>
-			</li>
+<span>Class</span>			</li>
 		</ul>
 		<ul>
 		</ul>
@@ -97,7 +96,7 @@ <h1>Overview</h1>
 	</div>
 </div>
 </div>
-<script src="resources/combined.js?479ca6fda5d877432bb787eaa1a8f6f67b72e18c"></script>
+<script src="resources/combined.js?34194bff555556dd495479fac76127b65c55669f"></script>
 <script src="elementlist.js?35b6369da1b2791d079f3a90139a4c47f746412b"></script>
 </body>
 </html>
diff --git a/api/namespace-phpmock.html b/api/namespace-phpmock.html
index 97f217f..e6f11d9 100644
--- a/api/namespace-phpmock.html
+++ b/api/namespace-phpmock.html
@@ -5,7 +5,7 @@
 
 	<title>Namespace phpmock</title>
 
-	<link rel="stylesheet" href="resources/style.css?e99947befd7bf673c6b43ff75e9e0f170c88a60e">
+	<link rel="stylesheet" href="resources/style.css?c2f33731c1948fbed7c333554678bfa68d4817da">
 
 </head>
 
@@ -63,8 +63,7 @@ <h3>Namespaces</h3>
 			<li class="active">
 <span>Namespace</span>			</li>
 			<li>
-				<a href="class-phpmock.phpunit.PHPMock.html" title="Summary of phpmock\phpunit\PHPMock"><span>Class</span></a>
-			</li>
+<span>Class</span>			</li>
 		</ul>
 		<ul>
 		</ul>
@@ -95,7 +94,7 @@ <h1>Namespace phpmock</h1>
 	</div>
 </div>
 </div>
-<script src="resources/combined.js?479ca6fda5d877432bb787eaa1a8f6f67b72e18c"></script>
+<script src="resources/combined.js?34194bff555556dd495479fac76127b65c55669f"></script>
 <script src="elementlist.js?35b6369da1b2791d079f3a90139a4c47f746412b"></script>
 </body>
 </html>
diff --git a/api/namespace-phpmock.phpunit.html b/api/namespace-phpmock.phpunit.html
index 305651b..6defb1e 100644
--- a/api/namespace-phpmock.phpunit.html
+++ b/api/namespace-phpmock.phpunit.html
@@ -5,7 +5,7 @@
 
 	<title>Namespace phpmock\phpunit</title>
 
-	<link rel="stylesheet" href="resources/style.css?e99947befd7bf673c6b43ff75e9e0f170c88a60e">
+	<link rel="stylesheet" href="resources/style.css?c2f33731c1948fbed7c333554678bfa68d4817da">
 
 </head>
 
@@ -41,7 +41,7 @@ <h3>Namespaces</h3>
 
 			<h3>Traits</h3>
 			<ul>
-				<li class="active"><a href="class-phpmock.phpunit.PHPMock.html">PHPMock</a></li>
+				<li><a href="class-phpmock.phpunit.PHPMock.html">PHPMock</a></li>
 			</ul>
 
 
@@ -68,8 +68,7 @@ <h3>Traits</h3>
 			<li class="active">
 <span>Namespace</span>			</li>
 			<li>
-				<a href="class-phpmock.phpunit.PHPMock.html" title="Summary of phpmock\phpunit\PHPMock"><span>Class</span></a>
-			</li>
+<span>Class</span>			</li>
 		</ul>
 		<ul>
 		</ul>
@@ -101,7 +100,7 @@ <h1>Namespace <a href="namespace-phpmock.html">phpmock</a>\phpunit</h1>
 	</div>
 </div>
 </div>
-<script src="resources/combined.js?479ca6fda5d877432bb787eaa1a8f6f67b72e18c"></script>
+<script src="resources/combined.js?34194bff555556dd495479fac76127b65c55669f"></script>
 <script src="elementlist.js?35b6369da1b2791d079f3a90139a4c47f746412b"></script>
 </body>
 </html>
diff --git a/api/resources/combined.js b/api/resources/combined.js
index 38f72f9..d858568 100644
--- a/api/resources/combined.js
+++ b/api/resources/combined.js
@@ -1,6 +1,6 @@
 
 var ApiGen = ApiGen || {};
-ApiGen.config = {"options":{"elementDetailsCollapsed":true,"elementsOrder":"natural"},"name":"ApiGen theme","templatesPath":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default","resources":{"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/resources":"resources"},"templates":{"overview":{"filename":"index.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/overview.latte"},"combined":{"filename":"resources\/combined.js","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/combined.js.latte"},"elementlist":{"filename":"elementlist.js","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/elementlist.js.latte"},"404":{"filename":"404.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/404.latte"},"package":{"filename":"package-%s.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/package.latte"},"namespace":{"filename":"namespace-%s.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/namespace.latte"},"class":{"filename":"class-%s.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/class.latte"},"constant":{"filename":"constant-%s.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/constant.latte"},"function":{"filename":"function-%s.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/function.latte"},"source":{"filename":"source-%s.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/source.latte"},"tree":{"filename":"tree.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/tree.latte"},"deprecated":{"filename":"deprecated.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/deprecated.latte"},"todo":{"filename":"todo.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/todo.latte"},"sitemap":{"filename":"sitemap.xml","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/sitemap.xml.latte"},"opensearch":{"filename":"opensearch.xml","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/opensearch.xml.latte"},"robots":{"filename":"robots.txt","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/phpunit\/vendor\/apigen\/apigen\/src\/templates\/default\/robots.txt.latte"}}};
+ApiGen.config = {"options":{"elementDetailsCollapsed":true,"elementsOrder":"natural"},"name":"ApiGen theme","templatesPath":"\/home\/malkusch\/workspace\/oss\/php-mock\/php-mock-phpunit\/vendor\/apigen\/apigen\/bin\/..\/..\/..\/..\/vendor\/apigen\/theme-default\/src","resources":{"\/home\/malkusch\/workspace\/oss\/php-mock\/php-mock-phpunit\/vendor\/apigen\/apigen\/bin\/..\/..\/..\/..\/vendor\/apigen\/theme-default\/src\/resources":"resources"},"templates":{"overview":{"filename":"index.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/php-mock-phpunit\/vendor\/apigen\/apigen\/bin\/..\/..\/..\/..\/vendor\/apigen\/theme-default\/src\/overview.latte"},"combined":{"filename":"resources\/combined.js","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/php-mock-phpunit\/vendor\/apigen\/apigen\/bin\/..\/..\/..\/..\/vendor\/apigen\/theme-default\/src\/combined.js.latte"},"elementlist":{"filename":"elementlist.js","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/php-mock-phpunit\/vendor\/apigen\/apigen\/bin\/..\/..\/..\/..\/vendor\/apigen\/theme-default\/src\/elementlist.js.latte"},"404":{"filename":"404.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/php-mock-phpunit\/vendor\/apigen\/apigen\/bin\/..\/..\/..\/..\/vendor\/apigen\/theme-default\/src\/404.latte"},"package":{"filename":"package-%s.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/php-mock-phpunit\/vendor\/apigen\/apigen\/bin\/..\/..\/..\/..\/vendor\/apigen\/theme-default\/src\/package.latte"},"namespace":{"filename":"namespace-%s.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/php-mock-phpunit\/vendor\/apigen\/apigen\/bin\/..\/..\/..\/..\/vendor\/apigen\/theme-default\/src\/namespace.latte"},"class":{"filename":"class-%s.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/php-mock-phpunit\/vendor\/apigen\/apigen\/bin\/..\/..\/..\/..\/vendor\/apigen\/theme-default\/src\/class.latte"},"constant":{"filename":"constant-%s.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/php-mock-phpunit\/vendor\/apigen\/apigen\/bin\/..\/..\/..\/..\/vendor\/apigen\/theme-default\/src\/constant.latte"},"function":{"filename":"function-%s.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/php-mock-phpunit\/vendor\/apigen\/apigen\/bin\/..\/..\/..\/..\/vendor\/apigen\/theme-default\/src\/function.latte"},"annotationGroup":{"filename":"annotation-group-%s.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/php-mock-phpunit\/vendor\/apigen\/apigen\/bin\/..\/..\/..\/..\/vendor\/apigen\/theme-default\/src\/annotation-group.latte"},"source":{"filename":"source-%s.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/php-mock-phpunit\/vendor\/apigen\/apigen\/bin\/..\/..\/..\/..\/vendor\/apigen\/theme-default\/src\/source.latte"},"tree":{"filename":"tree.html","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/php-mock-phpunit\/vendor\/apigen\/apigen\/bin\/..\/..\/..\/..\/vendor\/apigen\/theme-default\/src\/tree.latte"},"sitemap":{"filename":"sitemap.xml","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/php-mock-phpunit\/vendor\/apigen\/apigen\/bin\/..\/..\/..\/..\/vendor\/apigen\/theme-default\/src\/sitemap.xml.latte"},"opensearch":{"filename":"opensearch.xml","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/php-mock-phpunit\/vendor\/apigen\/apigen\/bin\/..\/..\/..\/..\/vendor\/apigen\/theme-default\/src\/opensearch.xml.latte"},"robots":{"filename":"robots.txt","template":"\/home\/malkusch\/workspace\/oss\/php-mock\/php-mock-phpunit\/vendor\/apigen\/apigen\/bin\/..\/..\/..\/..\/vendor\/apigen\/theme-default\/src\/robots.txt.latte"}}};
 
 
 	/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
@@ -10,55 +10,73 @@ ApiGen.config = {"options":{"elementDetailsCollapsed":true,"elementsOrder":"natu
 u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}x.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("<div>").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window);
 
 	/*!
- * jQuery Cookie Plugin v1.3.1
+ * jQuery Cookie Plugin v1.4.1
  * https://github.com/carhartl/jquery-cookie
  *
- * Copyright 2013 Klaus Hartl
+ * Copyright 2006, 2014 Klaus Hartl
  * Released under the MIT license
  */
-(function ($, document, undefined) {
+(function (factory) {
+	if (typeof define === 'function' && define.amd) {
+		// AMD (Register as an anonymous module)
+		define(['jquery'], factory);
+	} else if (typeof exports === 'object') {
+		// Node/CommonJS
+		module.exports = factory(require('jquery'));
+	} else {
+		// Browser globals
+		factory(jQuery);
+	}
+}(function ($) {
 
 	var pluses = /\+/g;
 
-	function raw(s) {
-		return s;
+	function encode(s) {
+		return config.raw ? s : encodeURIComponent(s);
+	}
+
+	function decode(s) {
+		return config.raw ? s : decodeURIComponent(s);
 	}
 
-	function decoded(s) {
-		return unRfc2068(decodeURIComponent(s.replace(pluses, ' ')));
+	function stringifyCookieValue(value) {
+		return encode(config.json ? JSON.stringify(value) : String(value));
 	}
 
-	function unRfc2068(value) {
-		if (value.indexOf('"') === 0) {
-			// This is a quoted cookie as according to RFC2068, unescape
-			value = value.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
+	function parseCookieValue(s) {
+		if (s.indexOf('"') === 0) {
+			// This is a quoted cookie as according to RFC2068, unescape...
+			s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
 		}
-		return value;
+
+		try {
+			// Replace server-side written pluses with spaces.
+			// If we can't decode the cookie, ignore it, it's unusable.
+			// If we can't parse the cookie, ignore it, it's unusable.
+			s = decodeURIComponent(s.replace(pluses, ' '));
+			return config.json ? JSON.parse(s) : s;
+		} catch(e) {}
 	}
 
-	function fromJSON(value) {
-		return config.json ? JSON.parse(value) : value;
+	function read(s, converter) {
+		var value = config.raw ? s : parseCookieValue(s);
+		return $.isFunction(converter) ? converter(value) : value;
 	}
 
 	var config = $.cookie = function (key, value, options) {
 
-		// write
-		if (value !== undefined) {
-			options = $.extend({}, config.defaults, options);
+		// Write
 
-			if (value === null) {
-				options.expires = -1;
-			}
+		if (arguments.length > 1 && !$.isFunction(value)) {
+			options = $.extend({}, config.defaults, options);
 
 			if (typeof options.expires === 'number') {
 				var days = options.expires, t = options.expires = new Date();
-				t.setDate(t.getDate() + days);
+				t.setMilliseconds(t.getMilliseconds() + days * 864e+5);
 			}
 
-			value = config.json ? JSON.stringify(value) : String(value);
-
 			return (document.cookie = [
-				encodeURIComponent(key), '=', config.raw ? value : encodeURIComponent(value),
+				encode(key), '=', stringifyCookieValue(value),
 				options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
 				options.path    ? '; path=' + options.path : '',
 				options.domain  ? '; domain=' + options.domain : '',
@@ -66,22 +84,30 @@ u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(
 			].join(''));
 		}
 
-		// read
-		var decode = config.raw ? raw : decoded;
-		var cookies = document.cookie.split('; ');
-		var result = key ? null : {};
-		for (var i = 0, l = cookies.length; i < l; i++) {
-			var parts = cookies[i].split('=');
-			var name = decode(parts.shift());
-			var cookie = decode(parts.join('='));
-
-			if (key && key === name) {
-				result = fromJSON(cookie);
+		// Read
+
+		var result = key ? undefined : {},
+		// To prevent the for loop in the first place assign an empty array
+		// in case there are no cookies at all. Also prevents odd result when
+		// calling $.cookie().
+				cookies = document.cookie ? document.cookie.split('; ') : [],
+				i = 0,
+				l = cookies.length;
+
+		for (; i < l; i++) {
+			var parts = cookies[i].split('='),
+					name = decode(parts.shift()),
+					cookie = parts.join('=');
+
+			if (key === name) {
+				// If second argument (value) is a function it's a converter...
+				result = read(cookie, value);
 				break;
 			}
 
-			if (!key) {
-				result[name] = fromJSON(cookie);
+			// Prevent storing a cookie that we couldn't decode.
+			if (!key && (cookie = read(cookie)) !== undefined) {
+				result[name] = cookie;
 			}
 		}
 
@@ -91,14 +117,12 @@ u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(
 	config.defaults = {};
 
 	$.removeCookie = function (key, options) {
-		if ($.cookie(key) !== null) {
-			$.cookie(key, null, options);
-			return true;
-		}
-		return false;
+		// Must not alter options, thus extending a fresh object...
+		$.cookie(key, '', $.extend({}, options, { expires: -1 }));
+		return !$.cookie(key);
 	};
 
-})(jQuery, document);
+}));
 
 	/*!
  * sprintf and vsprintf for jQuery
@@ -1152,11 +1176,19 @@ jQuery.fn.sortElements = (function(){
 
 	// Open details
 	if (ApiGen.config.options.elementDetailsCollapsed) {
+		var trCollapsed = true;
 		$('tr', $content).filter(':has(.detailed)')
 			.click(function() {
 				var $this = $(this);
-				$('.short', $this).hide();
-				$('.detailed', $this).show();
+				if (trCollapsed) {
+					$('.short', $this).hide();
+					$('.detailed', $this).show();
+					trCollapsed = false;
+				} else {					
+					$('.short', $this).show();
+					$('.detailed', $this).hide();
+					trCollapsed = true;
+				}
 			});
 	}
 
@@ -1249,8 +1281,8 @@ jQuery.fn.sortElements = (function(){
 	$('.l a').click(function(event) {
 		event.preventDefault();
 
-		var $selectedLine = $(this).parent();
-		var selectedLine = parseInt($selectedLine.attr('id'));
+		var selectedLine = $(this).parent().index() + 1;
+		var $selectedLine = $('pre.code .l').eq(selectedLine - 1);
 
 		if (event.shiftKey) {
 			if (lastLine) {
diff --git a/api/resources/style.css b/api/resources/style.css
index 0d35c21..8bf17b5 100644
--- a/api/resources/style.css
+++ b/api/resources/style.css
@@ -426,6 +426,7 @@ td.attributes {
 
 .class .methods .name > div > code span, .function .value > code {
 	white-space: nowrap;
+	display: inline-block;
 }
 
 .class .methods td.name > div, .class td.value > div {
@@ -544,6 +545,10 @@ div.tree span.padding {
 	font-weight: bold;
 }
 
+pre.numbers {
+	float: left;
+}
+
 span.l {
 	display: block;
 }
diff --git a/api/source-class-phpmock.phpunit.PHPMock.html b/api/source-class-phpmock.phpunit.PHPMock.html
index 9e447ad..328e0f6 100644
--- a/api/source-class-phpmock.phpunit.PHPMock.html
+++ b/api/source-class-phpmock.phpunit.PHPMock.html
@@ -6,7 +6,7 @@
 
 	<title>File PHPMock.php</title>
 
-	<link rel="stylesheet" href="resources/style.css?e99947befd7bf673c6b43ff75e9e0f170c88a60e">
+	<link rel="stylesheet" href="resources/style.css?c2f33731c1948fbed7c333554678bfa68d4817da">
 
 </head>
 
@@ -42,7 +42,7 @@ <h3>Namespaces</h3>
 
 			<h3>Traits</h3>
 			<ul>
-				<li class="active"><a href="class-phpmock.phpunit.PHPMock.html">phpmock\phpunit\PHPMock</a></li>
+				<li><a href="class-phpmock.phpunit.PHPMock.html">phpmock\phpunit\PHPMock</a></li>
 			</ul>
 
 
@@ -69,8 +69,7 @@ <h3>Traits</h3>
 			<li>
 <span>Namespace</span>			</li>
 			<li>
-				<a href="class-phpmock.phpunit.PHPMock.html" title="Summary of phpmock\phpunit\PHPMock"><span>Class</span></a>
-			</li>
+<span>Class</span>			</li>
 		</ul>
 		<ul>
 		</ul>
@@ -78,125 +77,155 @@ <h3>Traits</h3>
 		</ul>
 	</div>
 
-<pre><code><span id="1" class="l"><a href="#1">  1: </a><span class="xlang">&lt;?php</span>
-</span><span id="2" class="l"><a href="#2">  2: </a>
-</span><span id="3" class="l"><a href="#3">  3: </a><span class="php-keyword1">namespace</span> phpmock\phpunit;
-</span><span id="4" class="l"><a href="#4">  4: </a>
-</span><span id="5" class="l"><a href="#5">  5: </a><span class="php-keyword1">use</span> phpmock\integration\MockDelegateFunctionBuilder;
-</span><span id="6" class="l"><a href="#6">  6: </a><span class="php-keyword1">use</span> phpmock\MockBuilder;
-</span><span id="7" class="l"><a href="#7">  7: </a><span class="php-keyword1">use</span> phpmock\Deactivatable;
-</span><span id="8" class="l"><a href="#8">  8: </a>
-</span><span id="9" class="l"><a href="#9">  9: </a><span class="php-comment">/**
-</span></span><span id="10" class="l"><a href="#10"> 10: </a><span class="php-comment"> * Adds building a function mock functionality into PHPUnit_Framework_TestCase.
-</span></span><span id="11" class="l"><a href="#11"> 11: </a><span class="php-comment"> *
-</span></span><span id="12" class="l"><a href="#12"> 12: </a><span class="php-comment"> * Use this trait in your PHPUnit_Framework_TestCase:
-</span></span><span id="13" class="l"><a href="#13"> 13: </a><span class="php-comment"> * &lt;code&gt;
-</span></span><span id="14" class="l"><a href="#14"> 14: </a><span class="php-comment"> * &lt;?php
-</span></span><span id="15" class="l"><a href="#15"> 15: </a><span class="php-comment"> *
-</span></span><span id="16" class="l"><a href="#16"> 16: </a><span class="php-comment"> * namespace foo;
-</span></span><span id="17" class="l"><a href="#17"> 17: </a><span class="php-comment"> *
-</span></span><span id="18" class="l"><a href="#18"> 18: </a><span class="php-comment"> * use phpmock\phpunit\PHPMock;
-</span></span><span id="19" class="l"><a href="#19"> 19: </a><span class="php-comment"> *
-</span></span><span id="20" class="l"><a href="#20"> 20: </a><span class="php-comment"> * class FooTest extends \PHPUnit_Framework_TestCase
-</span></span><span id="21" class="l"><a href="#21"> 21: </a><span class="php-comment"> * {
-</span></span><span id="22" class="l"><a href="#22"> 22: </a><span class="php-comment"> *
-</span></span><span id="23" class="l"><a href="#23"> 23: </a><span class="php-comment"> *     use PHPMock;
-</span></span><span id="24" class="l"><a href="#24"> 24: </a><span class="php-comment"> *
-</span></span><span id="25" class="l"><a href="#25"> 25: </a><span class="php-comment"> *     public function testBar()
-</span></span><span id="26" class="l"><a href="#26"> 26: </a><span class="php-comment"> *     {
-</span></span><span id="27" class="l"><a href="#27"> 27: </a><span class="php-comment"> *         $time = $this-&gt;getFunctionMock(__NAMESPACE__, &quot;time&quot;);
-</span></span><span id="28" class="l"><a href="#28"> 28: </a><span class="php-comment"> *         $time-&gt;expects($this-&gt;once())-&gt;willReturn(3);
-</span></span><span id="29" class="l"><a href="#29"> 29: </a><span class="php-comment"> *         $this-&gt;assertEquals(3, time());
-</span></span><span id="30" class="l"><a href="#30"> 30: </a><span class="php-comment"> *     }
-</span></span><span id="31" class="l"><a href="#31"> 31: </a><span class="php-comment"> * }
-</span></span><span id="32" class="l"><a href="#32"> 32: </a><span class="php-comment"> * &lt;/code&gt;
-</span></span><span id="33" class="l"><a href="#33"> 33: </a><span class="php-comment"> *
-</span></span><span id="34" class="l"><a href="#34"> 34: </a><span class="php-comment"> * @author Markus Malkusch &lt;markus@malkusch.de&gt;
-</span></span><span id="35" class="l"><a href="#35"> 35: </a><span class="php-comment"> * @link bitcoin:1335STSwu9hST4vcMRppEPgENMHD2r1REK Donations
-</span></span><span id="36" class="l"><a href="#36"> 36: </a><span class="php-comment"> * @license http://www.wtfpl.net/txt/copying/ WTFPL
-</span></span><span id="37" class="l"><a href="#37"> 37: </a><span class="php-comment"> */</span>
-</span><span id="38" class="l"><a href="#38"> 38: </a><span class="php-keyword1">trait</span> PHPMock
-</span><span id="39" class="l"><a href="#39"> 39: </a>{
-</span><span id="40" class="l"><a href="#40"> 40: </a>
-</span><span id="41" class="l"><a href="#41"> 41: </a>    <span class="php-comment">/**
-</span></span><span id="42" class="l"><a href="#42"> 42: </a><span class="php-comment">     * Returns a builder object to create mock objects using a fluent interface.
-</span></span><span id="43" class="l"><a href="#43"> 43: </a><span class="php-comment">     *
-</span></span><span id="44" class="l"><a href="#44"> 44: </a><span class="php-comment">     * This method exists in PHPUnit_Framework_TestCase.
-</span></span><span id="45" class="l"><a href="#45"> 45: </a><span class="php-comment">     *
-</span></span><span id="46" class="l"><a href="#46"> 46: </a><span class="php-comment">     * @param string $className Name of the class to mock.
-</span></span><span id="47" class="l"><a href="#47"> 47: </a><span class="php-comment">     * @return \PHPUnit_Framework_MockObject_MockBuilder
-</span></span><span id="48" class="l"><a href="#48"> 48: </a><span class="php-comment">     * @see \PHPUnit_Framework_TestCase::getMockBuilder()
-</span></span><span id="49" class="l"><a href="#49"> 49: </a><span class="php-comment">     * @internal
-</span></span><span id="50" class="l"><a href="#50"> 50: </a><span class="php-comment">     */</span>
-</span><span id="51" class="l"><a href="#51"> 51: </a>    <span class="php-keyword1">abstract</span> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> getMockBuilder(<span class="php-var">$className</span>);
-</span><span id="52" class="l"><a href="#52"> 52: </a>
-</span><span id="53" class="l"><a href="#53"> 53: </a>    <span class="php-comment">/**
-</span></span><span id="54" class="l"><a href="#54"> 54: </a><span class="php-comment">     * Returns the test result.
-</span></span><span id="55" class="l"><a href="#55"> 55: </a><span class="php-comment">     *
-</span></span><span id="56" class="l"><a href="#56"> 56: </a><span class="php-comment">     * This method exists in PHPUnit_Framework_TestCase.
-</span></span><span id="57" class="l"><a href="#57"> 57: </a><span class="php-comment">     *
-</span></span><span id="58" class="l"><a href="#58"> 58: </a><span class="php-comment">     * @return \PHPUnit_Framework_TestResult The test result.
-</span></span><span id="59" class="l"><a href="#59"> 59: </a><span class="php-comment">     * @see \PHPUnit_Framework_TestCase::getTestResultObject()
-</span></span><span id="60" class="l"><a href="#60"> 60: </a><span class="php-comment">     * @internal
-</span></span><span id="61" class="l"><a href="#61"> 61: </a><span class="php-comment">     */</span>
-</span><span id="62" class="l"><a href="#62"> 62: </a>    <span class="php-keyword1">abstract</span> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> getTestResultObject();
-</span><span id="63" class="l"><a href="#63"> 63: </a>
-</span><span id="64" class="l"><a href="#64"> 64: </a>    <span class="php-comment">/**
-</span></span><span id="65" class="l"><a href="#65"> 65: </a><span class="php-comment">     * Returns the enabled function mock.
-</span></span><span id="66" class="l"><a href="#66"> 66: </a><span class="php-comment">     *
-</span></span><span id="67" class="l"><a href="#67"> 67: </a><span class="php-comment">     * This mock will be disabled automatically after the test run.
-</span></span><span id="68" class="l"><a href="#68"> 68: </a><span class="php-comment">     *
-</span></span><span id="69" class="l"><a href="#69"> 69: </a><span class="php-comment">     * @param string $namespace The function namespace.
-</span></span><span id="70" class="l"><a href="#70"> 70: </a><span class="php-comment">     * @param string $name      The function name.
-</span></span><span id="71" class="l"><a href="#71"> 71: </a><span class="php-comment">     *
-</span></span><span id="72" class="l"><a href="#72"> 72: </a><span class="php-comment">     * @return \PHPUnit_Framework_MockObject_MockObject The PHPUnit mock.
-</span></span><span id="73" class="l"><a href="#73"> 73: </a><span class="php-comment">     */</span>
-</span><span id="74" class="l"><a href="#74"> 74: </a>    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> getFunctionMock(<span class="php-var">$namespace</span>, <span class="php-var">$name</span>)
-</span><span id="75" class="l"><a href="#75"> 75: </a>    {
-</span><span id="76" class="l"><a href="#76"> 76: </a>        <span class="php-var">$delegateBuilder</span> = <span class="php-keyword1">new</span> MockDelegateFunctionBuilder();
-</span><span id="77" class="l"><a href="#77"> 77: </a>        <span class="php-var">$delegateBuilder</span>-&gt;build(<span class="php-var">$name</span>);
-</span><span id="78" class="l"><a href="#78"> 78: </a>        
-</span><span id="79" class="l"><a href="#79"> 79: </a>        <span class="php-var">$mock</span> = <span class="php-var">$this</span>-&gt;getMockBuilder(<span class="php-var">$delegateBuilder</span>-&gt;getFullyQualifiedClassName())-&gt;getMockForAbstractClass();
-</span><span id="80" class="l"><a href="#80"> 80: </a>        
-</span><span id="81" class="l"><a href="#81"> 81: </a>        <span class="php-var">$mock</span>-&gt;__phpunit_getInvocationMocker()-&gt;addMatcher(<span class="php-keyword1">new</span> DefaultArgumentRemover());
-</span><span id="82" class="l"><a href="#82"> 82: </a>        
-</span><span id="83" class="l"><a href="#83"> 83: </a>        <span class="php-var">$functionMockBuilder</span> = <span class="php-keyword1">new</span> MockBuilder();
-</span><span id="84" class="l"><a href="#84"> 84: </a>        <span class="php-var">$functionMockBuilder</span>-&gt;setNamespace(<span class="php-var">$namespace</span>)
-</span><span id="85" class="l"><a href="#85"> 85: </a>                            -&gt;setName(<span class="php-var">$name</span>)
-</span><span id="86" class="l"><a href="#86"> 86: </a>                            -&gt;setFunctionProvider(<span class="php-var">$mock</span>);
-</span><span id="87" class="l"><a href="#87"> 87: </a>                
-</span><span id="88" class="l"><a href="#88"> 88: </a>        <span class="php-var">$functionMock</span> = <span class="php-var">$functionMockBuilder</span>-&gt;build();
-</span><span id="89" class="l"><a href="#89"> 89: </a>        <span class="php-var">$functionMock</span>-&gt;enable();
-</span><span id="90" class="l"><a href="#90"> 90: </a>        
-</span><span id="91" class="l"><a href="#91"> 91: </a>        <span class="php-var">$this</span>-&gt;registerForTearDown(<span class="php-var">$functionMock</span>);
-</span><span id="92" class="l"><a href="#92"> 92: </a>        
-</span><span id="93" class="l"><a href="#93"> 93: </a>        <span class="php-var">$proxy</span> = <span class="php-keyword1">new</span> MockObjectProxy(<span class="php-var">$mock</span>);
-</span><span id="94" class="l"><a href="#94"> 94: </a>        <span class="php-keyword1">return</span> <span class="php-var">$proxy</span>;
-</span><span id="95" class="l"><a href="#95"> 95: </a>    }
-</span><span id="96" class="l"><a href="#96"> 96: </a>    
-</span><span id="97" class="l"><a href="#97"> 97: </a>    <span class="php-comment">/**
-</span></span><span id="98" class="l"><a href="#98"> 98: </a><span class="php-comment">     * Automatically disable function mocks after the test was run.
-</span></span><span id="99" class="l"><a href="#99"> 99: </a><span class="php-comment">     *
-</span></span><span id="100" class="l"><a href="#100">100: </a><span class="php-comment">     * If you use getFunctionMock() you don't need this method. This method
-</span></span><span id="101" class="l"><a href="#101">101: </a><span class="php-comment">     * is meant for a Deactivatable (e.g. a MockEnvironment) which was
-</span></span><span id="102" class="l"><a href="#102">102: </a><span class="php-comment">     * directly created with PHPMock's API.
-</span></span><span id="103" class="l"><a href="#103">103: </a><span class="php-comment">     *
-</span></span><span id="104" class="l"><a href="#104">104: </a><span class="php-comment">     * @param Deactivatable $deactivatable The function mocks.
-</span></span><span id="105" class="l"><a href="#105">105: </a><span class="php-comment">     */</span>
-</span><span id="106" class="l"><a href="#106">106: </a>    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> registerForTearDown(Deactivatable <span class="php-var">$deactivatable</span>)
-</span><span id="107" class="l"><a href="#107">107: </a>    {
-</span><span id="108" class="l"><a href="#108">108: </a>        <span class="php-var">$result</span> = <span class="php-var">$this</span>-&gt;getTestResultObject();
-</span><span id="109" class="l"><a href="#109">109: </a>        <span class="php-var">$result</span>-&gt;addListener(<span class="php-keyword1">new</span> MockDisabler(<span class="php-var">$deactivatable</span>));
-</span><span id="110" class="l"><a href="#110">110: </a>    }
-</span><span id="111" class="l"><a href="#111">111: </a>}
-</span><span id="112" class="l"><a href="#112">112: </a></span></code></pre>
+<pre class="numbers"><code><span class="l"><a href="#1">  1: </a></span><span class="l"><a href="#2">  2: </a></span><span class="l"><a href="#3">  3: </a></span><span class="l"><a href="#4">  4: </a></span><span class="l"><a href="#5">  5: </a></span><span class="l"><a href="#6">  6: </a></span><span class="l"><a href="#7">  7: </a></span><span class="l"><a href="#8">  8: </a></span><span class="l"><a href="#9">  9: </a></span></span><span class="l"><a href="#10"> 10: </a></span></span><span class="l"><a href="#11"> 11: </a></span></span><span class="l"><a href="#12"> 12: </a></span></span><span class="l"><a href="#13"> 13: </a></span></span><span class="l"><a href="#14"> 14: </a></span></span><span class="l"><a href="#15"> 15: </a></span></span><span class="l"><a href="#16"> 16: </a></span></span><span class="l"><a href="#17"> 17: </a></span></span><span class="l"><a href="#18"> 18: </a></span></span><span class="l"><a href="#19"> 19: </a></span></span><span class="l"><a href="#20"> 20: </a></span></span><span class="l"><a href="#21"> 21: </a></span></span><span class="l"><a href="#22"> 22: </a></span></span><span class="l"><a href="#23"> 23: </a></span></span><span class="l"><a href="#24"> 24: </a></span></span><span class="l"><a href="#25"> 25: </a></span></span><span class="l"><a href="#26"> 26: </a></span></span><span class="l"><a href="#27"> 27: </a></span></span><span class="l"><a href="#28"> 28: </a></span></span><span class="l"><a href="#29"> 29: </a></span></span><span class="l"><a href="#30"> 30: </a></span></span><span class="l"><a href="#31"> 31: </a></span></span><span class="l"><a href="#32"> 32: </a></span></span><span class="l"><a href="#33"> 33: </a></span></span><span class="l"><a href="#34"> 34: </a></span></span><span class="l"><a href="#35"> 35: </a></span></span><span class="l"><a href="#36"> 36: </a></span></span><span class="l"><a href="#37"> 37: </a></span><span class="l"><a href="#38"> 38: </a></span><span class="l"><a href="#39"> 39: </a></span><span class="l"><a href="#40"> 40: </a></span><span class="l"><a href="#41"> 41: </a></span></span><span class="l"><a href="#42"> 42: </a></span></span><span class="l"><a href="#43"> 43: </a></span></span><span class="l"><a href="#44"> 44: </a></span></span><span class="l"><a href="#45"> 45: </a></span></span><span class="l"><a href="#46"> 46: </a></span></span><span class="l"><a href="#47"> 47: </a></span></span><span class="l"><a href="#48"> 48: </a></span></span><span class="l"><a href="#49"> 49: </a></span></span><span class="l"><a href="#50"> 50: </a></span><span class="l"><a href="#51"> 51: </a></span><span class="l"><a href="#52"> 52: </a></span><span class="l"><a href="#53"> 53: </a></span></span><span class="l"><a href="#54"> 54: </a></span></span><span class="l"><a href="#55"> 55: </a></span></span><span class="l"><a href="#56"> 56: </a></span></span><span class="l"><a href="#57"> 57: </a></span></span><span class="l"><a href="#58"> 58: </a></span></span><span class="l"><a href="#59"> 59: </a></span></span><span class="l"><a href="#60"> 60: </a></span></span><span class="l"><a href="#61"> 61: </a></span><span class="l"><a href="#62"> 62: </a></span><span class="l"><a href="#63"> 63: </a></span><span class="l"><a href="#64"> 64: </a></span></span><span class="l"><a href="#65"> 65: </a></span></span><span class="l"><a href="#66"> 66: </a></span></span><span class="l"><a href="#67"> 67: </a></span></span><span class="l"><a href="#68"> 68: </a></span></span><span class="l"><a href="#69"> 69: </a></span></span><span class="l"><a href="#70"> 70: </a></span></span><span class="l"><a href="#71"> 71: </a></span></span><span class="l"><a href="#72"> 72: </a></span></span><span class="l"><a href="#73"> 73: </a></span><span class="l"><a href="#74"> 74: </a></span><span class="l"><a href="#75"> 75: </a></span><span class="l"><a href="#76"> 76: </a></span><span class="l"><a href="#77"> 77: </a></span><span class="l"><a href="#78"> 78: </a></span><span class="l"><a href="#79"> 79: </a></span><span class="l"><a href="#80"> 80: </a></span><span class="l"><a href="#81"> 81: </a></span><span class="l"><a href="#82"> 82: </a></span><span class="l"><a href="#83"> 83: </a></span><span class="l"><a href="#84"> 84: </a></span><span class="l"><a href="#85"> 85: </a></span><span class="l"><a href="#86"> 86: </a></span><span class="l"><a href="#87"> 87: </a></span><span class="l"><a href="#88"> 88: </a></span><span class="l"><a href="#89"> 89: </a></span><span class="l"><a href="#90"> 90: </a></span><span class="l"><a href="#91"> 91: </a></span><span class="l"><a href="#92"> 92: </a></span><span class="l"><a href="#93"> 93: </a></span><span class="l"><a href="#94"> 94: </a></span><span class="l"><a href="#95"> 95: </a></span><span class="l"><a href="#96"> 96: </a></span><span class="l"><a href="#97"> 97: </a></span></span><span class="l"><a href="#98"> 98: </a></span></span><span class="l"><a href="#99"> 99: </a></span></span><span class="l"><a href="#100">100: </a></span></span><span class="l"><a href="#101">101: </a></span></span><span class="l"><a href="#102">102: </a></span></span><span class="l"><a href="#103">103: </a></span></span><span class="l"><a href="#104">104: </a></span></span><span class="l"><a href="#105">105: </a></span><span class="l"><a href="#106">106: </a></span><span class="l"><a href="#107">107: </a></span><span class="l"><a href="#108">108: </a></span><span class="l"><a href="#109">109: </a></span><span class="l"><a href="#110">110: </a></span><span class="l"><a href="#111">111: </a></span><span class="l"><a href="#112">112: </a></span></span><span class="l"><a href="#113">113: </a></span></span><span class="l"><a href="#114">114: </a></span></span><span class="l"><a href="#115">115: </a></span></span><span class="l"><a href="#116">116: </a></span></span><span class="l"><a href="#117">117: </a></span></span><span class="l"><a href="#118">118: </a></span></span><span class="l"><a href="#119">119: </a></span></span><span class="l"><a href="#120">120: </a></span></span><span class="l"><a href="#121">121: </a></span></span><span class="l"><a href="#122">122: </a></span></span><span class="l"><a href="#123">123: </a></span></span><span class="l"><a href="#124">124: </a></span></span><span class="l"><a href="#125">125: </a></span></span><span class="l"><a href="#126">126: </a></span></span><span class="l"><a href="#127">127: </a></span></span><span class="l"><a href="#128">128: </a></span></span><span class="l"><a href="#129">129: </a></span><span class="l"><a href="#130">130: </a></span><span class="l"><a href="#131">131: </a></span><span class="l"><a href="#132">132: </a></span><span class="l"><a href="#133">133: </a></span><span class="l"><a href="#134">134: </a></span><span class="l"><a href="#135">135: </a></span><span class="l"><a href="#136">136: </a></span><span class="l"><a href="#137">137: </a></span><span class="l"><a href="#138">138: </a></span><span class="l"><a href="#139">139: </a></span><span class="l"><a href="#140">140: </a></span><span class="l"><a href="#141">141: </a></span></code></pre>
+<pre class="code"><code><span id="1" class="l"><span class="xlang">&lt;?php</span>
+</span><span id="2" class="l">
+</span><span id="3" class="l"><span class="php-keyword1">namespace</span> phpmock\phpunit;
+</span><span id="4" class="l">
+</span><span id="5" class="l"><span class="php-keyword1">use</span> phpmock\integration\MockDelegateFunctionBuilder;
+</span><span id="6" class="l"><span class="php-keyword1">use</span> phpmock\MockBuilder;
+</span><span id="7" class="l"><span class="php-keyword1">use</span> phpmock\Deactivatable;
+</span><span id="8" class="l">
+</span><span id="9" class="l"><span class="php-comment">/**
+</span></span><span id="10" class="l"><span class="php-comment"> * Adds building a function mock functionality into PHPUnit_Framework_TestCase.
+</span></span><span id="11" class="l"><span class="php-comment"> *
+</span></span><span id="12" class="l"><span class="php-comment"> * Use this trait in your PHPUnit_Framework_TestCase:
+</span></span><span id="13" class="l"><span class="php-comment"> * &lt;code&gt;
+</span></span><span id="14" class="l"><span class="php-comment"> * &lt;?php
+</span></span><span id="15" class="l"><span class="php-comment"> *
+</span></span><span id="16" class="l"><span class="php-comment"> * namespace foo;
+</span></span><span id="17" class="l"><span class="php-comment"> *
+</span></span><span id="18" class="l"><span class="php-comment"> * use phpmock\phpunit\PHPMock;
+</span></span><span id="19" class="l"><span class="php-comment"> *
+</span></span><span id="20" class="l"><span class="php-comment"> * class FooTest extends \PHPUnit_Framework_TestCase
+</span></span><span id="21" class="l"><span class="php-comment"> * {
+</span></span><span id="22" class="l"><span class="php-comment"> *
+</span></span><span id="23" class="l"><span class="php-comment"> *     use PHPMock;
+</span></span><span id="24" class="l"><span class="php-comment"> *
+</span></span><span id="25" class="l"><span class="php-comment"> *     public function testBar()
+</span></span><span id="26" class="l"><span class="php-comment"> *     {
+</span></span><span id="27" class="l"><span class="php-comment"> *         $time = $this-&gt;getFunctionMock(__NAMESPACE__, &quot;time&quot;);
+</span></span><span id="28" class="l"><span class="php-comment"> *         $time-&gt;expects($this-&gt;once())-&gt;willReturn(3);
+</span></span><span id="29" class="l"><span class="php-comment"> *         $this-&gt;assertEquals(3, time());
+</span></span><span id="30" class="l"><span class="php-comment"> *     }
+</span></span><span id="31" class="l"><span class="php-comment"> * }
+</span></span><span id="32" class="l"><span class="php-comment"> * &lt;/code&gt;
+</span></span><span id="33" class="l"><span class="php-comment"> *
+</span></span><span id="34" class="l"><span class="php-comment"> * @author Markus Malkusch &lt;markus@malkusch.de&gt;
+</span></span><span id="35" class="l"><span class="php-comment"> * @link bitcoin:1335STSwu9hST4vcMRppEPgENMHD2r1REK Donations
+</span></span><span id="36" class="l"><span class="php-comment"> * @license http://www.wtfpl.net/txt/copying/ WTFPL
+</span></span><span id="37" class="l"><span class="php-comment"> */</span>
+</span><span id="38" class="l"><span class="php-keyword1">trait</span> PHPMock
+</span><span id="39" class="l">{
+</span><span id="40" class="l">
+</span><span id="41" class="l">    <span class="php-comment">/**
+</span></span><span id="42" class="l"><span class="php-comment">     * Returns a builder object to create mock objects using a fluent interface.
+</span></span><span id="43" class="l"><span class="php-comment">     *
+</span></span><span id="44" class="l"><span class="php-comment">     * This method exists in PHPUnit_Framework_TestCase.
+</span></span><span id="45" class="l"><span class="php-comment">     *
+</span></span><span id="46" class="l"><span class="php-comment">     * @param string $className Name of the class to mock.
+</span></span><span id="47" class="l"><span class="php-comment">     * @return \PHPUnit_Framework_MockObject_MockBuilder
+</span></span><span id="48" class="l"><span class="php-comment">     * @see \PHPUnit_Framework_TestCase::getMockBuilder()
+</span></span><span id="49" class="l"><span class="php-comment">     * @internal
+</span></span><span id="50" class="l"><span class="php-comment">     */</span>
+</span><span id="51" class="l">    <span class="php-keyword1">abstract</span> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> getMockBuilder(<span class="php-var">$className</span>);
+</span><span id="52" class="l">
+</span><span id="53" class="l">    <span class="php-comment">/**
+</span></span><span id="54" class="l"><span class="php-comment">     * Returns the test result.
+</span></span><span id="55" class="l"><span class="php-comment">     *
+</span></span><span id="56" class="l"><span class="php-comment">     * This method exists in PHPUnit_Framework_TestCase.
+</span></span><span id="57" class="l"><span class="php-comment">     *
+</span></span><span id="58" class="l"><span class="php-comment">     * @return \PHPUnit_Framework_TestResult The test result.
+</span></span><span id="59" class="l"><span class="php-comment">     * @see \PHPUnit_Framework_TestCase::getTestResultObject()
+</span></span><span id="60" class="l"><span class="php-comment">     * @internal
+</span></span><span id="61" class="l"><span class="php-comment">     */</span>
+</span><span id="62" class="l">    <span class="php-keyword1">abstract</span> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> getTestResultObject();
+</span><span id="63" class="l">
+</span><span id="64" class="l">    <span class="php-comment">/**
+</span></span><span id="65" class="l"><span class="php-comment">     * Returns the enabled function mock.
+</span></span><span id="66" class="l"><span class="php-comment">     *
+</span></span><span id="67" class="l"><span class="php-comment">     * This mock will be disabled automatically after the test run.
+</span></span><span id="68" class="l"><span class="php-comment">     *
+</span></span><span id="69" class="l"><span class="php-comment">     * @param string $namespace The function namespace.
+</span></span><span id="70" class="l"><span class="php-comment">     * @param string $name      The function name.
+</span></span><span id="71" class="l"><span class="php-comment">     *
+</span></span><span id="72" class="l"><span class="php-comment">     * @return \PHPUnit_Framework_MockObject_MockObject The PHPUnit mock.
+</span></span><span id="73" class="l"><span class="php-comment">     */</span>
+</span><span id="74" class="l">    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> getFunctionMock(<span class="php-var">$namespace</span>, <span class="php-var">$name</span>)
+</span><span id="75" class="l">    {
+</span><span id="76" class="l">        <span class="php-var">$delegateBuilder</span> = <span class="php-keyword1">new</span> MockDelegateFunctionBuilder();
+</span><span id="77" class="l">        <span class="php-var">$delegateBuilder</span>-&gt;build(<span class="php-var">$name</span>);
+</span><span id="78" class="l">        
+</span><span id="79" class="l">        <span class="php-var">$mock</span> = <span class="php-var">$this</span>-&gt;getMockBuilder(<span class="php-var">$delegateBuilder</span>-&gt;getFullyQualifiedClassName())-&gt;getMockForAbstractClass();
+</span><span id="80" class="l">        
+</span><span id="81" class="l">        <span class="php-var">$mock</span>-&gt;__phpunit_getInvocationMocker()-&gt;addMatcher(<span class="php-keyword1">new</span> DefaultArgumentRemover());
+</span><span id="82" class="l">        
+</span><span id="83" class="l">        <span class="php-var">$functionMockBuilder</span> = <span class="php-keyword1">new</span> MockBuilder();
+</span><span id="84" class="l">        <span class="php-var">$functionMockBuilder</span>-&gt;setNamespace(<span class="php-var">$namespace</span>)
+</span><span id="85" class="l">                            -&gt;setName(<span class="php-var">$name</span>)
+</span><span id="86" class="l">                            -&gt;setFunctionProvider(<span class="php-var">$mock</span>);
+</span><span id="87" class="l">                
+</span><span id="88" class="l">        <span class="php-var">$functionMock</span> = <span class="php-var">$functionMockBuilder</span>-&gt;build();
+</span><span id="89" class="l">        <span class="php-var">$functionMock</span>-&gt;enable();
+</span><span id="90" class="l">        
+</span><span id="91" class="l">        <span class="php-var">$this</span>-&gt;registerForTearDown(<span class="php-var">$functionMock</span>);
+</span><span id="92" class="l">        
+</span><span id="93" class="l">        <span class="php-var">$proxy</span> = <span class="php-keyword1">new</span> MockObjectProxy(<span class="php-var">$mock</span>);
+</span><span id="94" class="l">        <span class="php-keyword1">return</span> <span class="php-var">$proxy</span>;
+</span><span id="95" class="l">    }
+</span><span id="96" class="l">    
+</span><span id="97" class="l">    <span class="php-comment">/**
+</span></span><span id="98" class="l"><span class="php-comment">     * Automatically disable function mocks after the test was run.
+</span></span><span id="99" class="l"><span class="php-comment">     *
+</span></span><span id="100" class="l"><span class="php-comment">     * If you use getFunctionMock() you don't need this method. This method
+</span></span><span id="101" class="l"><span class="php-comment">     * is meant for a Deactivatable (e.g. a MockEnvironment) which was
+</span></span><span id="102" class="l"><span class="php-comment">     * directly created with PHPMock's API.
+</span></span><span id="103" class="l"><span class="php-comment">     *
+</span></span><span id="104" class="l"><span class="php-comment">     * @param Deactivatable $deactivatable The function mocks.
+</span></span><span id="105" class="l"><span class="php-comment">     */</span>
+</span><span id="106" class="l">    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> registerForTearDown(Deactivatable <span class="php-var">$deactivatable</span>)
+</span><span id="107" class="l">    {
+</span><span id="108" class="l">        <span class="php-var">$result</span> = <span class="php-var">$this</span>-&gt;getTestResultObject();
+</span><span id="109" class="l">        <span class="php-var">$result</span>-&gt;addListener(<span class="php-keyword1">new</span> MockDisabler(<span class="php-var">$deactivatable</span>));
+</span><span id="110" class="l">    }
+</span><span id="111" class="l">    
+</span><span id="112" class="l">    <span class="php-comment">/**
+</span></span><span id="113" class="l"><span class="php-comment">     * Defines the mocked function in the given namespace.
+</span></span><span id="114" class="l"><span class="php-comment">     *
+</span></span><span id="115" class="l"><span class="php-comment">     * In most cases you don't have to call this method. {@link getFunctionMock()}
+</span></span><span id="116" class="l"><span class="php-comment">     * is doing this for you. But if the mock is defined after the first call in the
+</span></span><span id="117" class="l"><span class="php-comment">     * tested class, the tested class doesn't resolve to the mock. This is
+</span></span><span id="118" class="l"><span class="php-comment">     * documented in Bug #68541. You therefore have to define the namespaced
+</span></span><span id="119" class="l"><span class="php-comment">     * function before the first call (e.g. with @beforeClass).
+</span></span><span id="120" class="l"><span class="php-comment">     *
+</span></span><span id="121" class="l"><span class="php-comment">     * Defining the function has no side effects. If the function was
+</span></span><span id="122" class="l"><span class="php-comment">     * already defined this method does nothing.
+</span></span><span id="123" class="l"><span class="php-comment">     *
+</span></span><span id="124" class="l"><span class="php-comment">     * @see getFunctionMock()
+</span></span><span id="125" class="l"><span class="php-comment">     * @link https://bugs.php.net/bug.php?id=68541 Bug #68541
+</span></span><span id="126" class="l"><span class="php-comment">     *
+</span></span><span id="127" class="l"><span class="php-comment">     * @param string $namespace The function namespace.
+</span></span><span id="128" class="l"><span class="php-comment">     * @param string $name      The function name.
+</span></span><span id="129" class="l"><span class="php-comment">     */</span>
+</span><span id="130" class="l">    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> defineFunctionMock(<span class="php-var">$namespace</span>, <span class="php-var">$name</span>)
+</span><span id="131" class="l">    {
+</span><span id="132" class="l">        <span class="php-var">$functionMockBuilder</span> = <span class="php-keyword1">new</span> MockBuilder();
+</span><span id="133" class="l">        <span class="php-var">$functionMockBuilder</span>-&gt;setNamespace(<span class="php-var">$namespace</span>)
+</span><span id="134" class="l">                            -&gt;setName(<span class="php-var">$name</span>)
+</span><span id="135" class="l">                            -&gt;setFunction(<span class="php-keyword1">function</span> () {
+</span><span id="136" class="l">                            })
+</span><span id="137" class="l">                            -&gt;build()
+</span><span id="138" class="l">                            -&gt;<span class="php-keyword2">define</span>();
+</span><span id="139" class="l">    }
+</span><span id="140" class="l">}
+</span><span id="141" class="l"></span></code></pre>
 
 	<div id="footer">
 		 API documentation generated by <a href="http://apigen.org">ApiGen</a>
 	</div>
 </div>
 </div>
-<script src="resources/combined.js?479ca6fda5d877432bb787eaa1a8f6f67b72e18c"></script>
+<script src="resources/combined.js?34194bff555556dd495479fac76127b65c55669f"></script>
 <script src="elementlist.js?35b6369da1b2791d079f3a90139a4c47f746412b"></script>
 </body>
 </html>

From 13901ba641eefe74fa1078aed08f9f610de40962 Mon Sep 17 00:00:00 2001
From: Markus Malkusch <markus@malkusch.de>
Date: Thu, 5 Nov 2015 00:49:55 +0100
Subject: [PATCH 6/7] defineFunctionMock() should be static so that it can be
 used with @beforeClass

---
 api/class-phpmock.phpunit.PHPMock.html        | 4 ++--
 api/source-class-phpmock.phpunit.PHPMock.html | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/api/class-phpmock.phpunit.PHPMock.html b/api/class-phpmock.phpunit.PHPMock.html
index 205ed08..21c3a81 100644
--- a/api/class-phpmock.phpunit.PHPMock.html
+++ b/api/class-phpmock.phpunit.PHPMock.html
@@ -219,7 +219,7 @@ <h4>Parameters</h4>
 	<tr data-order="defineFunctionMock" id="_defineFunctionMock">
 
 		<td class="attributes"><code>
-			 public 
+			 public static
 
 			
 			
@@ -241,7 +241,7 @@ <h4>Parameters</h4>
 is doing this for you. But if the mock is defined after the first call in the
 tested class, the tested class doesn't resolve to the mock. This is
 documented in Bug #68541. You therefore have to define the namespaced
-function before the first call (e.g. with @beforeClass).</p>
+function before the first call (e.g. with the beforeClass annotation).</p>
 
 <p>Defining the function has no side effects. If the function was
 already defined this method does nothing.</p>
diff --git a/api/source-class-phpmock.phpunit.PHPMock.html b/api/source-class-phpmock.phpunit.PHPMock.html
index 328e0f6..d8c1e05 100644
--- a/api/source-class-phpmock.phpunit.PHPMock.html
+++ b/api/source-class-phpmock.phpunit.PHPMock.html
@@ -196,7 +196,7 @@ <h3>Traits</h3>
 </span></span><span id="116" class="l"><span class="php-comment">     * is doing this for you. But if the mock is defined after the first call in the
 </span></span><span id="117" class="l"><span class="php-comment">     * tested class, the tested class doesn't resolve to the mock. This is
 </span></span><span id="118" class="l"><span class="php-comment">     * documented in Bug #68541. You therefore have to define the namespaced
-</span></span><span id="119" class="l"><span class="php-comment">     * function before the first call (e.g. with @beforeClass).
+</span></span><span id="119" class="l"><span class="php-comment">     * function before the first call (e.g. with the beforeClass annotation).
 </span></span><span id="120" class="l"><span class="php-comment">     *
 </span></span><span id="121" class="l"><span class="php-comment">     * Defining the function has no side effects. If the function was
 </span></span><span id="122" class="l"><span class="php-comment">     * already defined this method does nothing.
@@ -207,7 +207,7 @@ <h3>Traits</h3>
 </span></span><span id="127" class="l"><span class="php-comment">     * @param string $namespace The function namespace.
 </span></span><span id="128" class="l"><span class="php-comment">     * @param string $name      The function name.
 </span></span><span id="129" class="l"><span class="php-comment">     */</span>
-</span><span id="130" class="l">    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> defineFunctionMock(<span class="php-var">$namespace</span>, <span class="php-var">$name</span>)
+</span><span id="130" class="l">    <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> defineFunctionMock(<span class="php-var">$namespace</span>, <span class="php-var">$name</span>)
 </span><span id="131" class="l">    {
 </span><span id="132" class="l">        <span class="php-var">$functionMockBuilder</span> = <span class="php-keyword1">new</span> MockBuilder();
 </span><span id="133" class="l">        <span class="php-var">$functionMockBuilder</span>-&gt;setNamespace(<span class="php-var">$namespace</span>)

From 14632f1505004a4a969d2ea15abe52a80e87bfbf Mon Sep 17 00:00:00 2001
From: Markus Malkusch <markus@malkusch.de>
Date: Mon, 20 Feb 2017 14:52:15 +0100
Subject: [PATCH 7/7] Release 2.0.0

---
 api/class-phpmock.phpunit.PHPMock.html        |  18 +-
 api/namespace-phpmock.phpunit.html            |   2 +-
 api/source-class-phpmock.phpunit.PHPMock.html | 238 +++++++++---------
 3 files changed, 127 insertions(+), 131 deletions(-)

diff --git a/api/class-phpmock.phpunit.PHPMock.html b/api/class-phpmock.phpunit.PHPMock.html
index 21c3a81..3040c99 100644
--- a/api/class-phpmock.phpunit.PHPMock.html
+++ b/api/class-phpmock.phpunit.PHPMock.html
@@ -82,20 +82,18 @@ <h1>Trait PHPMock</h1>
 
 
 	<div class="description">
-	<p>Adds building a function mock functionality into PHPUnit_Framework_TestCase.</p>
+	<p>Adds building a function mock functionality into \PHPUnit\Framework\TestCase.</p>
 
-<p>Use this trait in your PHPUnit_Framework_TestCase:</p>
+<p>Use this trait in your \PHPUnit\Framework\TestCase:</p>
 
 <pre><span class="xlang">&lt;?php</span>
 
 <span class="php-keyword1">namespace</span> foo;
 
-<span class="php-keyword1">use</span> phpmock\phpunit\PHPMock;
-
-<span class="php-keyword1">class</span> FooTest <span class="php-keyword1">extends</span> \PHPUnit_Framework_TestCase
+<span class="php-keyword1">class</span> FooTest <span class="php-keyword1">extends</span> \PHPUnit\Framework\TestCase
 {
 
-    <span class="php-keyword1">use</span> PHPMock;
+    <span class="php-keyword1">use</span> \phpmock\phpunit\PHPMock;
 
     <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> testBar()
     {
@@ -126,7 +124,7 @@ <h1>Trait PHPMock</h1>
 				Markus Malkusch <a href="&#109;&#97;&#105;&#108;&#116;&#x6f;&#x3a;&#x6d;&#x61;&#114;&#107;&#117;&#115;&#64;&#x6d;&#x61;&#x6c;&#x6b;u&#115;&#99;&#104;&#46;&#x64;&#x65;">&#x6d;&#x61;&#114;&#107;&#117;&#115;&#64;&#x6d;&#x61;&#x6c;&#x6b;u&#115;&#99;&#104;&#46;&#x64;&#x65;</a><br>
 				<b>Link:</b>
 				<a href="bitcoin:1335STSwu9hST4vcMRppEPgENMHD2r1REK">Donations</a><br>
-			<b>Located at</b> <a href="source-class-phpmock.phpunit.PHPMock.html#9-140" title="Go to source code">PHPMock.php</a>
+			<b>Located at</b> <a href="source-class-phpmock.phpunit.PHPMock.html#9-138" title="Go to source code">PHPMock.php</a>
 		<br>
 	</div>
 
@@ -146,7 +144,7 @@ <h1>Trait PHPMock</h1>
 
 		<td class="name"><div>
 		<a class="anchor" href="#_getFunctionMock">#</a>
-		<code><a href="source-class-phpmock.phpunit.PHPMock.html#64-95" title="Go to source code">getFunctionMock</a>( <span>string <var>$namespace</var></span>, <span>string <var>$name</var></span> )</code>
+		<code><a href="source-class-phpmock.phpunit.PHPMock.html#62-93" title="Go to source code">getFunctionMock</a>( <span>string <var>$namespace</var></span>, <span>string <var>$name</var></span> )</code>
 
 		<div class="description short">
 			<p>Returns the enabled function mock.</p>
@@ -189,7 +187,7 @@ <h4>Returns</h4>
 
 		<td class="name"><div>
 		<a class="anchor" href="#_registerForTearDown">#</a>
-		<code><a href="source-class-phpmock.phpunit.PHPMock.html#97-110" title="Go to source code">registerForTearDown</a>( <span>phpmock\Deactivatable <var>$deactivatable</var></span> )</code>
+		<code><a href="source-class-phpmock.phpunit.PHPMock.html#95-108" title="Go to source code">registerForTearDown</a>( <span>phpmock\Deactivatable <var>$deactivatable</var></span> )</code>
 
 		<div class="description short">
 			<p>Automatically disable function mocks after the test was run.</p>
@@ -228,7 +226,7 @@ <h4>Parameters</h4>
 
 		<td class="name"><div>
 		<a class="anchor" href="#_defineFunctionMock">#</a>
-		<code><a href="source-class-phpmock.phpunit.PHPMock.html#112-139" title="Go to source code">defineFunctionMock</a>( <span>string <var>$namespace</var></span>, <span>string <var>$name</var></span> )</code>
+		<code><a href="source-class-phpmock.phpunit.PHPMock.html#110-137" title="Go to source code">defineFunctionMock</a>( <span>string <var>$namespace</var></span>, <span>string <var>$name</var></span> )</code>
 
 		<div class="description short">
 			<p>Defines the mocked function in the given namespace.</p>
diff --git a/api/namespace-phpmock.phpunit.html b/api/namespace-phpmock.phpunit.html
index 6defb1e..b0d6e2a 100644
--- a/api/namespace-phpmock.phpunit.html
+++ b/api/namespace-phpmock.phpunit.html
@@ -87,7 +87,7 @@ <h1>Namespace <a href="namespace-phpmock.html">phpmock</a>\phpunit</h1>
 <caption>Traits summary</caption>
 <tr>
 	<td class="name"><a href="class-phpmock.phpunit.PHPMock.html">PHPMock</a></td>
-	<td>Adds building a function mock functionality into PHPUnit_Framework_TestCase.</td>
+	<td>Adds building a function mock functionality into \PHPUnit\Framework\TestCase.</td>
 </tr>
 </table>
 
diff --git a/api/source-class-phpmock.phpunit.PHPMock.html b/api/source-class-phpmock.phpunit.PHPMock.html
index d8c1e05..5dfc04d 100644
--- a/api/source-class-phpmock.phpunit.PHPMock.html
+++ b/api/source-class-phpmock.phpunit.PHPMock.html
@@ -77,7 +77,7 @@ <h3>Traits</h3>
 		</ul>
 	</div>
 
-<pre class="numbers"><code><span class="l"><a href="#1">  1: </a></span><span class="l"><a href="#2">  2: </a></span><span class="l"><a href="#3">  3: </a></span><span class="l"><a href="#4">  4: </a></span><span class="l"><a href="#5">  5: </a></span><span class="l"><a href="#6">  6: </a></span><span class="l"><a href="#7">  7: </a></span><span class="l"><a href="#8">  8: </a></span><span class="l"><a href="#9">  9: </a></span></span><span class="l"><a href="#10"> 10: </a></span></span><span class="l"><a href="#11"> 11: </a></span></span><span class="l"><a href="#12"> 12: </a></span></span><span class="l"><a href="#13"> 13: </a></span></span><span class="l"><a href="#14"> 14: </a></span></span><span class="l"><a href="#15"> 15: </a></span></span><span class="l"><a href="#16"> 16: </a></span></span><span class="l"><a href="#17"> 17: </a></span></span><span class="l"><a href="#18"> 18: </a></span></span><span class="l"><a href="#19"> 19: </a></span></span><span class="l"><a href="#20"> 20: </a></span></span><span class="l"><a href="#21"> 21: </a></span></span><span class="l"><a href="#22"> 22: </a></span></span><span class="l"><a href="#23"> 23: </a></span></span><span class="l"><a href="#24"> 24: </a></span></span><span class="l"><a href="#25"> 25: </a></span></span><span class="l"><a href="#26"> 26: </a></span></span><span class="l"><a href="#27"> 27: </a></span></span><span class="l"><a href="#28"> 28: </a></span></span><span class="l"><a href="#29"> 29: </a></span></span><span class="l"><a href="#30"> 30: </a></span></span><span class="l"><a href="#31"> 31: </a></span></span><span class="l"><a href="#32"> 32: </a></span></span><span class="l"><a href="#33"> 33: </a></span></span><span class="l"><a href="#34"> 34: </a></span></span><span class="l"><a href="#35"> 35: </a></span></span><span class="l"><a href="#36"> 36: </a></span></span><span class="l"><a href="#37"> 37: </a></span><span class="l"><a href="#38"> 38: </a></span><span class="l"><a href="#39"> 39: </a></span><span class="l"><a href="#40"> 40: </a></span><span class="l"><a href="#41"> 41: </a></span></span><span class="l"><a href="#42"> 42: </a></span></span><span class="l"><a href="#43"> 43: </a></span></span><span class="l"><a href="#44"> 44: </a></span></span><span class="l"><a href="#45"> 45: </a></span></span><span class="l"><a href="#46"> 46: </a></span></span><span class="l"><a href="#47"> 47: </a></span></span><span class="l"><a href="#48"> 48: </a></span></span><span class="l"><a href="#49"> 49: </a></span></span><span class="l"><a href="#50"> 50: </a></span><span class="l"><a href="#51"> 51: </a></span><span class="l"><a href="#52"> 52: </a></span><span class="l"><a href="#53"> 53: </a></span></span><span class="l"><a href="#54"> 54: </a></span></span><span class="l"><a href="#55"> 55: </a></span></span><span class="l"><a href="#56"> 56: </a></span></span><span class="l"><a href="#57"> 57: </a></span></span><span class="l"><a href="#58"> 58: </a></span></span><span class="l"><a href="#59"> 59: </a></span></span><span class="l"><a href="#60"> 60: </a></span></span><span class="l"><a href="#61"> 61: </a></span><span class="l"><a href="#62"> 62: </a></span><span class="l"><a href="#63"> 63: </a></span><span class="l"><a href="#64"> 64: </a></span></span><span class="l"><a href="#65"> 65: </a></span></span><span class="l"><a href="#66"> 66: </a></span></span><span class="l"><a href="#67"> 67: </a></span></span><span class="l"><a href="#68"> 68: </a></span></span><span class="l"><a href="#69"> 69: </a></span></span><span class="l"><a href="#70"> 70: </a></span></span><span class="l"><a href="#71"> 71: </a></span></span><span class="l"><a href="#72"> 72: </a></span></span><span class="l"><a href="#73"> 73: </a></span><span class="l"><a href="#74"> 74: </a></span><span class="l"><a href="#75"> 75: </a></span><span class="l"><a href="#76"> 76: </a></span><span class="l"><a href="#77"> 77: </a></span><span class="l"><a href="#78"> 78: </a></span><span class="l"><a href="#79"> 79: </a></span><span class="l"><a href="#80"> 80: </a></span><span class="l"><a href="#81"> 81: </a></span><span class="l"><a href="#82"> 82: </a></span><span class="l"><a href="#83"> 83: </a></span><span class="l"><a href="#84"> 84: </a></span><span class="l"><a href="#85"> 85: </a></span><span class="l"><a href="#86"> 86: </a></span><span class="l"><a href="#87"> 87: </a></span><span class="l"><a href="#88"> 88: </a></span><span class="l"><a href="#89"> 89: </a></span><span class="l"><a href="#90"> 90: </a></span><span class="l"><a href="#91"> 91: </a></span><span class="l"><a href="#92"> 92: </a></span><span class="l"><a href="#93"> 93: </a></span><span class="l"><a href="#94"> 94: </a></span><span class="l"><a href="#95"> 95: </a></span><span class="l"><a href="#96"> 96: </a></span><span class="l"><a href="#97"> 97: </a></span></span><span class="l"><a href="#98"> 98: </a></span></span><span class="l"><a href="#99"> 99: </a></span></span><span class="l"><a href="#100">100: </a></span></span><span class="l"><a href="#101">101: </a></span></span><span class="l"><a href="#102">102: </a></span></span><span class="l"><a href="#103">103: </a></span></span><span class="l"><a href="#104">104: </a></span></span><span class="l"><a href="#105">105: </a></span><span class="l"><a href="#106">106: </a></span><span class="l"><a href="#107">107: </a></span><span class="l"><a href="#108">108: </a></span><span class="l"><a href="#109">109: </a></span><span class="l"><a href="#110">110: </a></span><span class="l"><a href="#111">111: </a></span><span class="l"><a href="#112">112: </a></span></span><span class="l"><a href="#113">113: </a></span></span><span class="l"><a href="#114">114: </a></span></span><span class="l"><a href="#115">115: </a></span></span><span class="l"><a href="#116">116: </a></span></span><span class="l"><a href="#117">117: </a></span></span><span class="l"><a href="#118">118: </a></span></span><span class="l"><a href="#119">119: </a></span></span><span class="l"><a href="#120">120: </a></span></span><span class="l"><a href="#121">121: </a></span></span><span class="l"><a href="#122">122: </a></span></span><span class="l"><a href="#123">123: </a></span></span><span class="l"><a href="#124">124: </a></span></span><span class="l"><a href="#125">125: </a></span></span><span class="l"><a href="#126">126: </a></span></span><span class="l"><a href="#127">127: </a></span></span><span class="l"><a href="#128">128: </a></span></span><span class="l"><a href="#129">129: </a></span><span class="l"><a href="#130">130: </a></span><span class="l"><a href="#131">131: </a></span><span class="l"><a href="#132">132: </a></span><span class="l"><a href="#133">133: </a></span><span class="l"><a href="#134">134: </a></span><span class="l"><a href="#135">135: </a></span><span class="l"><a href="#136">136: </a></span><span class="l"><a href="#137">137: </a></span><span class="l"><a href="#138">138: </a></span><span class="l"><a href="#139">139: </a></span><span class="l"><a href="#140">140: </a></span><span class="l"><a href="#141">141: </a></span></code></pre>
+<pre class="numbers"><code><span class="l"><a href="#1">  1: </a></span><span class="l"><a href="#2">  2: </a></span><span class="l"><a href="#3">  3: </a></span><span class="l"><a href="#4">  4: </a></span><span class="l"><a href="#5">  5: </a></span><span class="l"><a href="#6">  6: </a></span><span class="l"><a href="#7">  7: </a></span><span class="l"><a href="#8">  8: </a></span><span class="l"><a href="#9">  9: </a></span></span><span class="l"><a href="#10"> 10: </a></span></span><span class="l"><a href="#11"> 11: </a></span></span><span class="l"><a href="#12"> 12: </a></span></span><span class="l"><a href="#13"> 13: </a></span></span><span class="l"><a href="#14"> 14: </a></span></span><span class="l"><a href="#15"> 15: </a></span></span><span class="l"><a href="#16"> 16: </a></span></span><span class="l"><a href="#17"> 17: </a></span></span><span class="l"><a href="#18"> 18: </a></span></span><span class="l"><a href="#19"> 19: </a></span></span><span class="l"><a href="#20"> 20: </a></span></span><span class="l"><a href="#21"> 21: </a></span></span><span class="l"><a href="#22"> 22: </a></span></span><span class="l"><a href="#23"> 23: </a></span></span><span class="l"><a href="#24"> 24: </a></span></span><span class="l"><a href="#25"> 25: </a></span></span><span class="l"><a href="#26"> 26: </a></span></span><span class="l"><a href="#27"> 27: </a></span></span><span class="l"><a href="#28"> 28: </a></span></span><span class="l"><a href="#29"> 29: </a></span></span><span class="l"><a href="#30"> 30: </a></span></span><span class="l"><a href="#31"> 31: </a></span></span><span class="l"><a href="#32"> 32: </a></span></span><span class="l"><a href="#33"> 33: </a></span></span><span class="l"><a href="#34"> 34: </a></span></span><span class="l"><a href="#35"> 35: </a></span><span class="l"><a href="#36"> 36: </a></span><span class="l"><a href="#37"> 37: </a></span><span class="l"><a href="#38"> 38: </a></span><span class="l"><a href="#39"> 39: </a></span></span><span class="l"><a href="#40"> 40: </a></span></span><span class="l"><a href="#41"> 41: </a></span></span><span class="l"><a href="#42"> 42: </a></span></span><span class="l"><a href="#43"> 43: </a></span></span><span class="l"><a href="#44"> 44: </a></span></span><span class="l"><a href="#45"> 45: </a></span></span><span class="l"><a href="#46"> 46: </a></span></span><span class="l"><a href="#47"> 47: </a></span></span><span class="l"><a href="#48"> 48: </a></span><span class="l"><a href="#49"> 49: </a></span><span class="l"><a href="#50"> 50: </a></span><span class="l"><a href="#51"> 51: </a></span></span><span class="l"><a href="#52"> 52: </a></span></span><span class="l"><a href="#53"> 53: </a></span></span><span class="l"><a href="#54"> 54: </a></span></span><span class="l"><a href="#55"> 55: </a></span></span><span class="l"><a href="#56"> 56: </a></span></span><span class="l"><a href="#57"> 57: </a></span></span><span class="l"><a href="#58"> 58: </a></span></span><span class="l"><a href="#59"> 59: </a></span><span class="l"><a href="#60"> 60: </a></span><span class="l"><a href="#61"> 61: </a></span><span class="l"><a href="#62"> 62: </a></span></span><span class="l"><a href="#63"> 63: </a></span></span><span class="l"><a href="#64"> 64: </a></span></span><span class="l"><a href="#65"> 65: </a></span></span><span class="l"><a href="#66"> 66: </a></span></span><span class="l"><a href="#67"> 67: </a></span></span><span class="l"><a href="#68"> 68: </a></span></span><span class="l"><a href="#69"> 69: </a></span></span><span class="l"><a href="#70"> 70: </a></span></span><span class="l"><a href="#71"> 71: </a></span><span class="l"><a href="#72"> 72: </a></span><span class="l"><a href="#73"> 73: </a></span><span class="l"><a href="#74"> 74: </a></span><span class="l"><a href="#75"> 75: </a></span><span class="l"><a href="#76"> 76: </a></span><span class="l"><a href="#77"> 77: </a></span><span class="l"><a href="#78"> 78: </a></span><span class="l"><a href="#79"> 79: </a></span><span class="l"><a href="#80"> 80: </a></span><span class="l"><a href="#81"> 81: </a></span><span class="l"><a href="#82"> 82: </a></span><span class="l"><a href="#83"> 83: </a></span><span class="l"><a href="#84"> 84: </a></span><span class="l"><a href="#85"> 85: </a></span><span class="l"><a href="#86"> 86: </a></span><span class="l"><a href="#87"> 87: </a></span><span class="l"><a href="#88"> 88: </a></span><span class="l"><a href="#89"> 89: </a></span><span class="l"><a href="#90"> 90: </a></span><span class="l"><a href="#91"> 91: </a></span><span class="l"><a href="#92"> 92: </a></span><span class="l"><a href="#93"> 93: </a></span><span class="l"><a href="#94"> 94: </a></span><span class="l"><a href="#95"> 95: </a></span></span><span class="l"><a href="#96"> 96: </a></span></span><span class="l"><a href="#97"> 97: </a></span></span><span class="l"><a href="#98"> 98: </a></span></span><span class="l"><a href="#99"> 99: </a></span></span><span class="l"><a href="#100">100: </a></span></span><span class="l"><a href="#101">101: </a></span></span><span class="l"><a href="#102">102: </a></span></span><span class="l"><a href="#103">103: </a></span><span class="l"><a href="#104">104: </a></span><span class="l"><a href="#105">105: </a></span><span class="l"><a href="#106">106: </a></span><span class="l"><a href="#107">107: </a></span><span class="l"><a href="#108">108: </a></span><span class="l"><a href="#109">109: </a></span><span class="l"><a href="#110">110: </a></span></span><span class="l"><a href="#111">111: </a></span></span><span class="l"><a href="#112">112: </a></span></span><span class="l"><a href="#113">113: </a></span></span><span class="l"><a href="#114">114: </a></span></span><span class="l"><a href="#115">115: </a></span></span><span class="l"><a href="#116">116: </a></span></span><span class="l"><a href="#117">117: </a></span></span><span class="l"><a href="#118">118: </a></span></span><span class="l"><a href="#119">119: </a></span></span><span class="l"><a href="#120">120: </a></span></span><span class="l"><a href="#121">121: </a></span></span><span class="l"><a href="#122">122: </a></span></span><span class="l"><a href="#123">123: </a></span></span><span class="l"><a href="#124">124: </a></span></span><span class="l"><a href="#125">125: </a></span></span><span class="l"><a href="#126">126: </a></span></span><span class="l"><a href="#127">127: </a></span><span class="l"><a href="#128">128: </a></span><span class="l"><a href="#129">129: </a></span><span class="l"><a href="#130">130: </a></span><span class="l"><a href="#131">131: </a></span><span class="l"><a href="#132">132: </a></span><span class="l"><a href="#133">133: </a></span><span class="l"><a href="#134">134: </a></span><span class="l"><a href="#135">135: </a></span><span class="l"><a href="#136">136: </a></span><span class="l"><a href="#137">137: </a></span><span class="l"><a href="#138">138: </a></span><span class="l"><a href="#139">139: </a></span></code></pre>
 <pre class="code"><code><span id="1" class="l"><span class="xlang">&lt;?php</span>
 </span><span id="2" class="l">
 </span><span id="3" class="l"><span class="php-keyword1">namespace</span> phpmock\phpunit;
@@ -87,138 +87,136 @@ <h3>Traits</h3>
 </span><span id="7" class="l"><span class="php-keyword1">use</span> phpmock\Deactivatable;
 </span><span id="8" class="l">
 </span><span id="9" class="l"><span class="php-comment">/**
-</span></span><span id="10" class="l"><span class="php-comment"> * Adds building a function mock functionality into PHPUnit_Framework_TestCase.
+</span></span><span id="10" class="l"><span class="php-comment"> * Adds building a function mock functionality into \PHPUnit\Framework\TestCase.
 </span></span><span id="11" class="l"><span class="php-comment"> *
-</span></span><span id="12" class="l"><span class="php-comment"> * Use this trait in your PHPUnit_Framework_TestCase:
+</span></span><span id="12" class="l"><span class="php-comment"> * Use this trait in your \PHPUnit\Framework\TestCase:
 </span></span><span id="13" class="l"><span class="php-comment"> * &lt;code&gt;
 </span></span><span id="14" class="l"><span class="php-comment"> * &lt;?php
 </span></span><span id="15" class="l"><span class="php-comment"> *
 </span></span><span id="16" class="l"><span class="php-comment"> * namespace foo;
 </span></span><span id="17" class="l"><span class="php-comment"> *
-</span></span><span id="18" class="l"><span class="php-comment"> * use phpmock\phpunit\PHPMock;
-</span></span><span id="19" class="l"><span class="php-comment"> *
-</span></span><span id="20" class="l"><span class="php-comment"> * class FooTest extends \PHPUnit_Framework_TestCase
-</span></span><span id="21" class="l"><span class="php-comment"> * {
+</span></span><span id="18" class="l"><span class="php-comment"> * class FooTest extends \PHPUnit\Framework\TestCase
+</span></span><span id="19" class="l"><span class="php-comment"> * {
+</span></span><span id="20" class="l"><span class="php-comment"> *
+</span></span><span id="21" class="l"><span class="php-comment"> *     use \phpmock\phpunit\PHPMock;
 </span></span><span id="22" class="l"><span class="php-comment"> *
-</span></span><span id="23" class="l"><span class="php-comment"> *     use PHPMock;
-</span></span><span id="24" class="l"><span class="php-comment"> *
-</span></span><span id="25" class="l"><span class="php-comment"> *     public function testBar()
-</span></span><span id="26" class="l"><span class="php-comment"> *     {
-</span></span><span id="27" class="l"><span class="php-comment"> *         $time = $this-&gt;getFunctionMock(__NAMESPACE__, &quot;time&quot;);
-</span></span><span id="28" class="l"><span class="php-comment"> *         $time-&gt;expects($this-&gt;once())-&gt;willReturn(3);
-</span></span><span id="29" class="l"><span class="php-comment"> *         $this-&gt;assertEquals(3, time());
-</span></span><span id="30" class="l"><span class="php-comment"> *     }
-</span></span><span id="31" class="l"><span class="php-comment"> * }
-</span></span><span id="32" class="l"><span class="php-comment"> * &lt;/code&gt;
-</span></span><span id="33" class="l"><span class="php-comment"> *
-</span></span><span id="34" class="l"><span class="php-comment"> * @author Markus Malkusch &lt;markus@malkusch.de&gt;
-</span></span><span id="35" class="l"><span class="php-comment"> * @link bitcoin:1335STSwu9hST4vcMRppEPgENMHD2r1REK Donations
-</span></span><span id="36" class="l"><span class="php-comment"> * @license http://www.wtfpl.net/txt/copying/ WTFPL
-</span></span><span id="37" class="l"><span class="php-comment"> */</span>
-</span><span id="38" class="l"><span class="php-keyword1">trait</span> PHPMock
-</span><span id="39" class="l">{
-</span><span id="40" class="l">
-</span><span id="41" class="l">    <span class="php-comment">/**
-</span></span><span id="42" class="l"><span class="php-comment">     * Returns a builder object to create mock objects using a fluent interface.
+</span></span><span id="23" class="l"><span class="php-comment"> *     public function testBar()
+</span></span><span id="24" class="l"><span class="php-comment"> *     {
+</span></span><span id="25" class="l"><span class="php-comment"> *         $time = $this-&gt;getFunctionMock(__NAMESPACE__, &quot;time&quot;);
+</span></span><span id="26" class="l"><span class="php-comment"> *         $time-&gt;expects($this-&gt;once())-&gt;willReturn(3);
+</span></span><span id="27" class="l"><span class="php-comment"> *         $this-&gt;assertEquals(3, time());
+</span></span><span id="28" class="l"><span class="php-comment"> *     }
+</span></span><span id="29" class="l"><span class="php-comment"> * }
+</span></span><span id="30" class="l"><span class="php-comment"> * &lt;/code&gt;
+</span></span><span id="31" class="l"><span class="php-comment"> *
+</span></span><span id="32" class="l"><span class="php-comment"> * @author Markus Malkusch &lt;markus@malkusch.de&gt;
+</span></span><span id="33" class="l"><span class="php-comment"> * @link bitcoin:1335STSwu9hST4vcMRppEPgENMHD2r1REK Donations
+</span></span><span id="34" class="l"><span class="php-comment"> * @license http://www.wtfpl.net/txt/copying/ WTFPL
+</span></span><span id="35" class="l"><span class="php-comment"> */</span>
+</span><span id="36" class="l"><span class="php-keyword1">trait</span> PHPMock
+</span><span id="37" class="l">{
+</span><span id="38" class="l">
+</span><span id="39" class="l">    <span class="php-comment">/**
+</span></span><span id="40" class="l"><span class="php-comment">     * Returns a builder object to create mock objects using a fluent interface.
+</span></span><span id="41" class="l"><span class="php-comment">     *
+</span></span><span id="42" class="l"><span class="php-comment">     * This method exists in \PHPUnit\Framework\TestCase.
 </span></span><span id="43" class="l"><span class="php-comment">     *
-</span></span><span id="44" class="l"><span class="php-comment">     * This method exists in PHPUnit_Framework_TestCase.
-</span></span><span id="45" class="l"><span class="php-comment">     *
-</span></span><span id="46" class="l"><span class="php-comment">     * @param string $className Name of the class to mock.
-</span></span><span id="47" class="l"><span class="php-comment">     * @return \PHPUnit_Framework_MockObject_MockBuilder
-</span></span><span id="48" class="l"><span class="php-comment">     * @see \PHPUnit_Framework_TestCase::getMockBuilder()
-</span></span><span id="49" class="l"><span class="php-comment">     * @internal
-</span></span><span id="50" class="l"><span class="php-comment">     */</span>
-</span><span id="51" class="l">    <span class="php-keyword1">abstract</span> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> getMockBuilder(<span class="php-var">$className</span>);
-</span><span id="52" class="l">
-</span><span id="53" class="l">    <span class="php-comment">/**
-</span></span><span id="54" class="l"><span class="php-comment">     * Returns the test result.
+</span></span><span id="44" class="l"><span class="php-comment">     * @param string $className Name of the class to mock.
+</span></span><span id="45" class="l"><span class="php-comment">     * @return \PHPUnit_Framework_MockObject_MockBuilder
+</span></span><span id="46" class="l"><span class="php-comment">     * @see \PHPUnit\Framework\TestCase::getMockBuilder()
+</span></span><span id="47" class="l"><span class="php-comment">     * @internal
+</span></span><span id="48" class="l"><span class="php-comment">     */</span>
+</span><span id="49" class="l">    <span class="php-keyword1">abstract</span> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> getMockBuilder(<span class="php-var">$className</span>);
+</span><span id="50" class="l">
+</span><span id="51" class="l">    <span class="php-comment">/**
+</span></span><span id="52" class="l"><span class="php-comment">     * Returns the test result.
+</span></span><span id="53" class="l"><span class="php-comment">     *
+</span></span><span id="54" class="l"><span class="php-comment">     * This method exists in \PHPUnit\Framework\TestCase.
 </span></span><span id="55" class="l"><span class="php-comment">     *
-</span></span><span id="56" class="l"><span class="php-comment">     * This method exists in PHPUnit_Framework_TestCase.
-</span></span><span id="57" class="l"><span class="php-comment">     *
-</span></span><span id="58" class="l"><span class="php-comment">     * @return \PHPUnit_Framework_TestResult The test result.
-</span></span><span id="59" class="l"><span class="php-comment">     * @see \PHPUnit_Framework_TestCase::getTestResultObject()
-</span></span><span id="60" class="l"><span class="php-comment">     * @internal
-</span></span><span id="61" class="l"><span class="php-comment">     */</span>
-</span><span id="62" class="l">    <span class="php-keyword1">abstract</span> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> getTestResultObject();
-</span><span id="63" class="l">
-</span><span id="64" class="l">    <span class="php-comment">/**
-</span></span><span id="65" class="l"><span class="php-comment">     * Returns the enabled function mock.
+</span></span><span id="56" class="l"><span class="php-comment">     * @return \PHPUnit\Framework\TestResult The test result.
+</span></span><span id="57" class="l"><span class="php-comment">     * @see \PHPUnit\Framework\TestCase::getTestResultObject()
+</span></span><span id="58" class="l"><span class="php-comment">     * @internal
+</span></span><span id="59" class="l"><span class="php-comment">     */</span>
+</span><span id="60" class="l">    <span class="php-keyword1">abstract</span> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> getTestResultObject();
+</span><span id="61" class="l">
+</span><span id="62" class="l">    <span class="php-comment">/**
+</span></span><span id="63" class="l"><span class="php-comment">     * Returns the enabled function mock.
+</span></span><span id="64" class="l"><span class="php-comment">     *
+</span></span><span id="65" class="l"><span class="php-comment">     * This mock will be disabled automatically after the test run.
 </span></span><span id="66" class="l"><span class="php-comment">     *
-</span></span><span id="67" class="l"><span class="php-comment">     * This mock will be disabled automatically after the test run.
-</span></span><span id="68" class="l"><span class="php-comment">     *
-</span></span><span id="69" class="l"><span class="php-comment">     * @param string $namespace The function namespace.
-</span></span><span id="70" class="l"><span class="php-comment">     * @param string $name      The function name.
-</span></span><span id="71" class="l"><span class="php-comment">     *
-</span></span><span id="72" class="l"><span class="php-comment">     * @return \PHPUnit_Framework_MockObject_MockObject The PHPUnit mock.
-</span></span><span id="73" class="l"><span class="php-comment">     */</span>
-</span><span id="74" class="l">    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> getFunctionMock(<span class="php-var">$namespace</span>, <span class="php-var">$name</span>)
-</span><span id="75" class="l">    {
-</span><span id="76" class="l">        <span class="php-var">$delegateBuilder</span> = <span class="php-keyword1">new</span> MockDelegateFunctionBuilder();
-</span><span id="77" class="l">        <span class="php-var">$delegateBuilder</span>-&gt;build(<span class="php-var">$name</span>);
+</span></span><span id="67" class="l"><span class="php-comment">     * @param string $namespace The function namespace.
+</span></span><span id="68" class="l"><span class="php-comment">     * @param string $name      The function name.
+</span></span><span id="69" class="l"><span class="php-comment">     *
+</span></span><span id="70" class="l"><span class="php-comment">     * @return \PHPUnit_Framework_MockObject_MockObject The PHPUnit mock.
+</span></span><span id="71" class="l"><span class="php-comment">     */</span>
+</span><span id="72" class="l">    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> getFunctionMock(<span class="php-var">$namespace</span>, <span class="php-var">$name</span>)
+</span><span id="73" class="l">    {
+</span><span id="74" class="l">        <span class="php-var">$delegateBuilder</span> = <span class="php-keyword1">new</span> MockDelegateFunctionBuilder();
+</span><span id="75" class="l">        <span class="php-var">$delegateBuilder</span>-&gt;build(<span class="php-var">$name</span>);
+</span><span id="76" class="l">        
+</span><span id="77" class="l">        <span class="php-var">$mock</span> = <span class="php-var">$this</span>-&gt;getMockBuilder(<span class="php-var">$delegateBuilder</span>-&gt;getFullyQualifiedClassName())-&gt;getMockForAbstractClass();
 </span><span id="78" class="l">        
-</span><span id="79" class="l">        <span class="php-var">$mock</span> = <span class="php-var">$this</span>-&gt;getMockBuilder(<span class="php-var">$delegateBuilder</span>-&gt;getFullyQualifiedClassName())-&gt;getMockForAbstractClass();
+</span><span id="79" class="l">        <span class="php-var">$mock</span>-&gt;__phpunit_getInvocationMocker()-&gt;addMatcher(<span class="php-keyword1">new</span> DefaultArgumentRemover());
 </span><span id="80" class="l">        
-</span><span id="81" class="l">        <span class="php-var">$mock</span>-&gt;__phpunit_getInvocationMocker()-&gt;addMatcher(<span class="php-keyword1">new</span> DefaultArgumentRemover());
-</span><span id="82" class="l">        
-</span><span id="83" class="l">        <span class="php-var">$functionMockBuilder</span> = <span class="php-keyword1">new</span> MockBuilder();
-</span><span id="84" class="l">        <span class="php-var">$functionMockBuilder</span>-&gt;setNamespace(<span class="php-var">$namespace</span>)
-</span><span id="85" class="l">                            -&gt;setName(<span class="php-var">$name</span>)
-</span><span id="86" class="l">                            -&gt;setFunctionProvider(<span class="php-var">$mock</span>);
-</span><span id="87" class="l">                
-</span><span id="88" class="l">        <span class="php-var">$functionMock</span> = <span class="php-var">$functionMockBuilder</span>-&gt;build();
-</span><span id="89" class="l">        <span class="php-var">$functionMock</span>-&gt;enable();
+</span><span id="81" class="l">        <span class="php-var">$functionMockBuilder</span> = <span class="php-keyword1">new</span> MockBuilder();
+</span><span id="82" class="l">        <span class="php-var">$functionMockBuilder</span>-&gt;setNamespace(<span class="php-var">$namespace</span>)
+</span><span id="83" class="l">                            -&gt;setName(<span class="php-var">$name</span>)
+</span><span id="84" class="l">                            -&gt;setFunctionProvider(<span class="php-var">$mock</span>);
+</span><span id="85" class="l">                
+</span><span id="86" class="l">        <span class="php-var">$functionMock</span> = <span class="php-var">$functionMockBuilder</span>-&gt;build();
+</span><span id="87" class="l">        <span class="php-var">$functionMock</span>-&gt;enable();
+</span><span id="88" class="l">        
+</span><span id="89" class="l">        <span class="php-var">$this</span>-&gt;registerForTearDown(<span class="php-var">$functionMock</span>);
 </span><span id="90" class="l">        
-</span><span id="91" class="l">        <span class="php-var">$this</span>-&gt;registerForTearDown(<span class="php-var">$functionMock</span>);
-</span><span id="92" class="l">        
-</span><span id="93" class="l">        <span class="php-var">$proxy</span> = <span class="php-keyword1">new</span> MockObjectProxy(<span class="php-var">$mock</span>);
-</span><span id="94" class="l">        <span class="php-keyword1">return</span> <span class="php-var">$proxy</span>;
-</span><span id="95" class="l">    }
-</span><span id="96" class="l">    
-</span><span id="97" class="l">    <span class="php-comment">/**
-</span></span><span id="98" class="l"><span class="php-comment">     * Automatically disable function mocks after the test was run.
-</span></span><span id="99" class="l"><span class="php-comment">     *
-</span></span><span id="100" class="l"><span class="php-comment">     * If you use getFunctionMock() you don't need this method. This method
-</span></span><span id="101" class="l"><span class="php-comment">     * is meant for a Deactivatable (e.g. a MockEnvironment) which was
-</span></span><span id="102" class="l"><span class="php-comment">     * directly created with PHPMock's API.
-</span></span><span id="103" class="l"><span class="php-comment">     *
-</span></span><span id="104" class="l"><span class="php-comment">     * @param Deactivatable $deactivatable The function mocks.
-</span></span><span id="105" class="l"><span class="php-comment">     */</span>
-</span><span id="106" class="l">    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> registerForTearDown(Deactivatable <span class="php-var">$deactivatable</span>)
-</span><span id="107" class="l">    {
-</span><span id="108" class="l">        <span class="php-var">$result</span> = <span class="php-var">$this</span>-&gt;getTestResultObject();
-</span><span id="109" class="l">        <span class="php-var">$result</span>-&gt;addListener(<span class="php-keyword1">new</span> MockDisabler(<span class="php-var">$deactivatable</span>));
-</span><span id="110" class="l">    }
-</span><span id="111" class="l">    
-</span><span id="112" class="l">    <span class="php-comment">/**
-</span></span><span id="113" class="l"><span class="php-comment">     * Defines the mocked function in the given namespace.
-</span></span><span id="114" class="l"><span class="php-comment">     *
-</span></span><span id="115" class="l"><span class="php-comment">     * In most cases you don't have to call this method. {@link getFunctionMock()}
-</span></span><span id="116" class="l"><span class="php-comment">     * is doing this for you. But if the mock is defined after the first call in the
-</span></span><span id="117" class="l"><span class="php-comment">     * tested class, the tested class doesn't resolve to the mock. This is
-</span></span><span id="118" class="l"><span class="php-comment">     * documented in Bug #68541. You therefore have to define the namespaced
-</span></span><span id="119" class="l"><span class="php-comment">     * function before the first call (e.g. with the beforeClass annotation).
-</span></span><span id="120" class="l"><span class="php-comment">     *
-</span></span><span id="121" class="l"><span class="php-comment">     * Defining the function has no side effects. If the function was
-</span></span><span id="122" class="l"><span class="php-comment">     * already defined this method does nothing.
-</span></span><span id="123" class="l"><span class="php-comment">     *
-</span></span><span id="124" class="l"><span class="php-comment">     * @see getFunctionMock()
-</span></span><span id="125" class="l"><span class="php-comment">     * @link https://bugs.php.net/bug.php?id=68541 Bug #68541
-</span></span><span id="126" class="l"><span class="php-comment">     *
-</span></span><span id="127" class="l"><span class="php-comment">     * @param string $namespace The function namespace.
-</span></span><span id="128" class="l"><span class="php-comment">     * @param string $name      The function name.
-</span></span><span id="129" class="l"><span class="php-comment">     */</span>
-</span><span id="130" class="l">    <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> defineFunctionMock(<span class="php-var">$namespace</span>, <span class="php-var">$name</span>)
-</span><span id="131" class="l">    {
-</span><span id="132" class="l">        <span class="php-var">$functionMockBuilder</span> = <span class="php-keyword1">new</span> MockBuilder();
-</span><span id="133" class="l">        <span class="php-var">$functionMockBuilder</span>-&gt;setNamespace(<span class="php-var">$namespace</span>)
-</span><span id="134" class="l">                            -&gt;setName(<span class="php-var">$name</span>)
-</span><span id="135" class="l">                            -&gt;setFunction(<span class="php-keyword1">function</span> () {
-</span><span id="136" class="l">                            })
-</span><span id="137" class="l">                            -&gt;build()
-</span><span id="138" class="l">                            -&gt;<span class="php-keyword2">define</span>();
-</span><span id="139" class="l">    }
-</span><span id="140" class="l">}
-</span><span id="141" class="l"></span></code></pre>
+</span><span id="91" class="l">        <span class="php-var">$proxy</span> = <span class="php-keyword1">new</span> MockObjectProxy(<span class="php-var">$mock</span>);
+</span><span id="92" class="l">        <span class="php-keyword1">return</span> <span class="php-var">$proxy</span>;
+</span><span id="93" class="l">    }
+</span><span id="94" class="l">    
+</span><span id="95" class="l">    <span class="php-comment">/**
+</span></span><span id="96" class="l"><span class="php-comment">     * Automatically disable function mocks after the test was run.
+</span></span><span id="97" class="l"><span class="php-comment">     *
+</span></span><span id="98" class="l"><span class="php-comment">     * If you use getFunctionMock() you don't need this method. This method
+</span></span><span id="99" class="l"><span class="php-comment">     * is meant for a Deactivatable (e.g. a MockEnvironment) which was
+</span></span><span id="100" class="l"><span class="php-comment">     * directly created with PHPMock's API.
+</span></span><span id="101" class="l"><span class="php-comment">     *
+</span></span><span id="102" class="l"><span class="php-comment">     * @param Deactivatable $deactivatable The function mocks.
+</span></span><span id="103" class="l"><span class="php-comment">     */</span>
+</span><span id="104" class="l">    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> registerForTearDown(Deactivatable <span class="php-var">$deactivatable</span>)
+</span><span id="105" class="l">    {
+</span><span id="106" class="l">        <span class="php-var">$result</span> = <span class="php-var">$this</span>-&gt;getTestResultObject();
+</span><span id="107" class="l">        <span class="php-var">$result</span>-&gt;addListener(<span class="php-keyword1">new</span> MockDisabler(<span class="php-var">$deactivatable</span>));
+</span><span id="108" class="l">    }
+</span><span id="109" class="l">    
+</span><span id="110" class="l">    <span class="php-comment">/**
+</span></span><span id="111" class="l"><span class="php-comment">     * Defines the mocked function in the given namespace.
+</span></span><span id="112" class="l"><span class="php-comment">     *
+</span></span><span id="113" class="l"><span class="php-comment">     * In most cases you don't have to call this method. {@link getFunctionMock()}
+</span></span><span id="114" class="l"><span class="php-comment">     * is doing this for you. But if the mock is defined after the first call in the
+</span></span><span id="115" class="l"><span class="php-comment">     * tested class, the tested class doesn't resolve to the mock. This is
+</span></span><span id="116" class="l"><span class="php-comment">     * documented in Bug #68541. You therefore have to define the namespaced
+</span></span><span id="117" class="l"><span class="php-comment">     * function before the first call (e.g. with the beforeClass annotation).
+</span></span><span id="118" class="l"><span class="php-comment">     *
+</span></span><span id="119" class="l"><span class="php-comment">     * Defining the function has no side effects. If the function was
+</span></span><span id="120" class="l"><span class="php-comment">     * already defined this method does nothing.
+</span></span><span id="121" class="l"><span class="php-comment">     *
+</span></span><span id="122" class="l"><span class="php-comment">     * @see getFunctionMock()
+</span></span><span id="123" class="l"><span class="php-comment">     * @link https://bugs.php.net/bug.php?id=68541 Bug #68541
+</span></span><span id="124" class="l"><span class="php-comment">     *
+</span></span><span id="125" class="l"><span class="php-comment">     * @param string $namespace The function namespace.
+</span></span><span id="126" class="l"><span class="php-comment">     * @param string $name      The function name.
+</span></span><span id="127" class="l"><span class="php-comment">     */</span>
+</span><span id="128" class="l">    <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> defineFunctionMock(<span class="php-var">$namespace</span>, <span class="php-var">$name</span>)
+</span><span id="129" class="l">    {
+</span><span id="130" class="l">        <span class="php-var">$functionMockBuilder</span> = <span class="php-keyword1">new</span> MockBuilder();
+</span><span id="131" class="l">        <span class="php-var">$functionMockBuilder</span>-&gt;setNamespace(<span class="php-var">$namespace</span>)
+</span><span id="132" class="l">                            -&gt;setName(<span class="php-var">$name</span>)
+</span><span id="133" class="l">                            -&gt;setFunction(<span class="php-keyword1">function</span> () {
+</span><span id="134" class="l">                            })
+</span><span id="135" class="l">                            -&gt;build()
+</span><span id="136" class="l">                            -&gt;<span class="php-keyword2">define</span>();
+</span><span id="137" class="l">    }
+</span><span id="138" class="l">}
+</span><span id="139" class="l"></span></code></pre>
 
 	<div id="footer">
 		 API documentation generated by <a href="http://apigen.org">ApiGen</a>
